搜索
文章平均质量分 70
running_in_dark
这个作者很懒,什么都没留下…
展开
-
noi题库—搜索—分成互质组
给定n个正整数,将它们分组,使得每组中任意两个数互质。至少要分成多少个组? #include #include #include #include using namespace std; typedef long long ll; int n,ans=12; ll a[12],tmp[12]; ll gcd(ll a,ll b){return b==0 ? a:gcd(b,a%b);}原创 2016-11-05 20:42:56 · 1116 阅读 · 0 评论 -
bzoj1306(搜索与剪枝经典)
主题思路就是枚举每一个比赛是什么状况 #include #include #include #include #include using namespace std; int n,tot,s[10],ans,a[10],last[10]; struct aa { int u,v; }c[50]; void dfs(int i) { if (i==tot+1原创 2016-10-27 13:17:12 · 1051 阅读 · 0 评论 -
爆搜创造性剪枝实验
题目:靶形数独 各种小优化和位运算,待补充,程序并未完成,实际上优化是无止境的! 代码: #include #include #include #include #include using namespace std; const int id[10][10]={0,0,0,0,0,0,0,0,0,0, 0,1,1,1,2,2,2,3,3,3, 0,1,1,1,原创 2016-10-04 00:41:30 · 184 阅读 · 0 评论 -
bzoj4395(技巧BFS)
看网上的题解都是,不停bfs直到不再更新,感觉这样常数会大一些。 实际上我们能够到达一个点,1:到达过他的相邻点,2:他的灯被打开了 那么我们就维护两个bool型数组,一个判断是否到达相邻点,一个判断灯是否打开,只有当两个条件都成立的时候才把该位置加进队列里面去 #include #include #include #include #include #inclu原创 2016-11-13 11:31:25 · 394 阅读 · 0 评论 -
noip斗地主
没有想到斗地主可以这么简短。 #include #include #include #include #include #include using namespace std; const int inf=0x3f3f3f3f; const int t[3]={5,3,2}; const int r[3]={1,2,3}; int T,n,ans; int a[20原创 2016-11-01 16:55:14 · 354 阅读 · 0 评论 -
bzoj1085(dfs+剪枝)
网上都是A*算法,这里dfs通过估价函数剪枝,过了。 实际上就是判断最少移动多少次可以到目标状态,如果当前移动次数的加上预期移动次数大于ans,就直接返回 #include #include #include #include #include #include using namespace std; const int mod=1635947; const int e原创 2016-11-24 21:30:01 · 222 阅读 · 0 评论