POJ 1011 / UVA 307 Sticks
2016-05-20 23:26
501 查看
中文题 (一般都比较坑)
思路:DFS
(感谢学长的幻灯片)
这破题把我折腾惨了!!!搞了n天
惨痛的失败经历。。。
TLE了一屏半
WA了半屏
在mars_ch&玉环的帮助下终于A了此题。。。
去UVA上交了一遍 1A
还挺快 嘿嘿
和mars_ch争论了很久是if(dfs(x,l-a[i],i))return 1;还是if(dfs(x,l-a[i],pos+1))return 1;
在POJ上都是16msAC的 她表示没有什么区别
但
是
UVA 证明了一切
她的程序got TLE 哈哈哈哈 (青出于蓝而胜于蓝)
思路:DFS
(感谢学长的幻灯片)
这破题把我折腾惨了!!!搞了n天
// by Sirius_Ren #include <cstdio> #include <cstring> #include <algorithm> using namespace std; int n,a[100],sum,jy,maxx,q; bool vis[100]; bool cmp(int a,int b){return a>b;} bool dfs(int x,int l,int pos){ if(x==q)return 1; for(int i=pos+1;i<=n;i++){ if(vis[i]||(!vis[i-1]&&a[i]==a[i-1]&&i>1))continue; if(l==a[i]){ vis[i]=1; if(dfs(x+1,jy,0))return 1; vis[i]=0;return 0; } if(l>a[i]){ vis[i]=1; if(dfs(x,l-a[i],i))return 1; vis[i]=0; if(l==jy)return 0; } } return 0; } int main() { while(scanf("%d",&n)&&n){ maxx=sum=0; memset(a,0,sizeof(a)); for(int i=1;i<=n;i++)scanf("%d",&a[i]),sum+=a[i],maxx=max(maxx,a[i]); sort(a+1,a+1+n,cmp); for(jy=maxx;jy<=sum;jy++){ if(sum%jy)continue; q=sum/jy; memset(vis,0,sizeof(vis)); if(dfs(0,jy,0)){printf("%d\n",jy);break;} } } }
惨痛的失败经历。。。
TLE了一屏半
WA了半屏
在mars_ch&玉环的帮助下终于A了此题。。。
去UVA上交了一遍 1A
还挺快 嘿嘿
和mars_ch争论了很久是if(dfs(x,l-a[i],i))return 1;还是if(dfs(x,l-a[i],pos+1))return 1;
在POJ上都是16msAC的 她表示没有什么区别
但
是
UVA 证明了一切
她的程序got TLE 哈哈哈哈 (青出于蓝而胜于蓝)
相关文章推荐
- Flex Namespace的用法
- ajax使用不同namespace的action的方法
- Win2003利用dfs(分布式文件系统)在负载均衡下的文件同步配置方案
- 浅谈几种常见语言的命名空间(Namespace)
- thinkphp autoload 命名空间自定义 namespace
- PHP命名空间(namespace)的使用基础及示例
- php中namespace use用法实例分析
- C++ namespace相关语法实例分析
- PHP命名空间(Namespace)简明教程
- PHP命名空间(Namespace)的使用详解
- JavaScript创建命名空间(namespace)的最简实现
- win2003分布式文件系统(dfs)配置方法[图文详解]
- ASP.Net中命名空间Namespace浅析和使用例子
- win2003分布式文件系统及其部署 图文教程
- C++ 匿名namespace的作用以及它与static的区别
- Hadoop2.6+jdk8的安装部署(1)——使用jar包安装部署【详细】
- 这个小例子也许能帮助大家理解一下SIGUSR1的用法
- 不要在头文件中使用 using
- Hadoop FS Shell
- DFS使用方法总结