
枚举
jinglinxiao
这个作者很懒,什么都没留下…
展开
-
USACO-Wormholes (枚举)
题目链接:USACO-Wormholes题意是给定n解法是枚举所有的方案,然后进行检测。如果一个虫洞进入的次数大于1次,则陷入循环。枚举可以通过递归来实现。在递归的过程中,对于一个还没有匹配的点,他一定匹配编号比他大的点。然后这样就可以保证同一种配对仅能出现一次。/*ID: xdujlx1PROG: wormholeLANG: C++*/#include原创 2017-03-03 23:04:03 · 395 阅读 · 0 评论 -
USACO-Prime Cryptarithm(枚举)
题目链接:USACO-Prime Cryptarithm枚举一下上面两位,然后check/*ID: xdujlx1PROG: crypt1LANG: C++*/#includeusing namespace std;int a[30];bool vis[30];void ioinit(){ freopen("crypt1.in","r",stdin); fr原创 2017-03-03 23:27:17 · 296 阅读 · 0 评论 -
USACO-Arithmetic Progressions(枚举剪枝)
题目链接:USACO-Arithmetic Progressions翻译首先计算出所有的双平方数,有2e4个,然后排序后开始枚举。如果在一个枚举样例中,d*(n-1)+a_0>max(a),那么说明不可能组成等差数列,则退出,由于n>=3,这里对于a_0较大的情况完成了大量的剪枝。还有一个剪枝就是从后往前枚举。因为后面较前面而言比较稀疏。因此枚举较少数量的等差数列后就能根据原创 2017-03-04 10:40:28 · 358 阅读 · 0 评论 -
USACO-Prime Palindromes(部分筛法判素数,回文数生成)
题目链接:USACO-Prime Palindromes首先生成所有的回文数,最多应该不超过1e5个。这里可以加一个剪枝,位数为偶数/5的回文数不可能是素数然后对每个数进行素数判定,素数判定可以用部分筛来实现。先生成小于sqrt(n)的所有素数。当判定一个数是否为素数时,检测这个数是否能除尽素数表中的数即可。这样复杂度可以比sqrt(n)小,威神说可以达到O(sqrt(n)/log(n原创 2017-03-04 13:55:08 · 308 阅读 · 0 评论 -
USACO-Hamming Codes(枚举)
题目链接:USACO-Hamming Codes既然要求字典序最小,那么直接枚举就行了。/*ID: xdujlx1PROG: hammingLANG: C++*/#includeusing namespace std;int ans[70];int k;int n,b,d;void ioinit(){ freopen("hamming.in","r",std原创 2017-03-04 17:41:01 · 268 阅读 · 0 评论 -
USACO-Runaround Numbers(枚举)
题目链接:Runaround Numbers因为每个数都不相同,所以可以枚举出所有的数,复杂度是 9!9! 。 排序后可以二分找答案。/*ID: xdujlx1PROG: runroundLANG: C++*/#include<bits/stdc++.h>using namespace std;typedef long long ll;ll arr[100007];int a[1原创 2017-03-08 22:22:27 · 328 阅读 · 0 评论