07 2017 档案

摘要:A题 分析:水题,模拟一下顺时针和逆时针情况就好了 1 #include "iostream" 2 #include "cstdio" 3 #include "cstring" 4 #include "string" 5 #include "vector" 6 using namespace std 阅读全文
posted @ 2017-07-31 10:08 wolf940509 阅读(127) 评论(0) 推荐(0)
摘要:A题 分析:直接看n/k的奇偶性 1 #include "iostream" 2 #include "cstdio" 3 #include "cstring" 4 using namespace std; 5 long long n,k; 6 int main() 7 { 8 cin>>n>>k; 阅读全文
posted @ 2017-07-25 11:14 wolf940509 阅读(132) 评论(0) 推荐(0)
摘要:A题 分析:遇到1就统计有几个连续的,遇到0若连续的多于一个就输出后面的0 1 #include "iostream" 2 #include "cstdio" 3 #include "cstring" 4 #include "string" 5 #include "vector" 6 using n 阅读全文
posted @ 2017-07-24 20:44 wolf940509 阅读(112) 评论(0) 推荐(0)
摘要:每做一次决策就可以得到解的一部分,当所有决策做完以后,完整的解就"浮出水面“。在回溯法中,每次决策对应于给一个结点产生新的子树,而解的生成过程对应一颗解答树,结点的层数就是下一个待填充的位置 UVA116 分析:dp[i][j]记录从(i,j)出发的最小值,本题同时还要求输出字典序最小的解,所以需要 阅读全文
posted @ 2017-07-24 15:36 wolf940509 阅读(385) 评论(0) 推荐(0)
摘要:Chang and Bitwise OR 分析:因为按位或最后肯定小于等于加,所以把所有数按位或即可 1 #include "iostream" 2 #include "cstdio" 3 #include "cstring" 4 using namespace std; 5 const int m 阅读全文
posted @ 2017-07-24 09:29 wolf940509 阅读(135) 评论(0) 推荐(0)
摘要:UVA1025 分析:因为时间是单向流逝的,是天然的"序",所以影响决策的只有当前时间和所处的决策。dp[i][j],表示在第i分钟时,处于第j个车站,最少还需要多少等待时间,因此其等待时间就有站原地等待,乘坐从左到右的车,乘坐从右到左的车,三个状态来决定。 1 #include "iostream 阅读全文
posted @ 2017-07-23 02:34 wolf940509 阅读(362) 评论(0) 推荐(0)
摘要:链接 分析:dp[i][j]表示前i个数能够组成j的对数,可得dp[i][j]=dp[i-1][j]+dp[i-1][j-i],所以最后dp[n][sum/2]既是所求 1 /* 2 PROB:subset 3 ID:wanghan 4 LANG:C++ 5 */ 6 #include "iostr 阅读全文
posted @ 2017-07-17 19:23 wolf940509 阅读(136) 评论(0) 推荐(0)
摘要:链接 分析:先打表需要用到的罗马数字,然后暴力转换,最后统计一下即可 1 /* 2 PROB:preface 3 ID:wanghan 4 LANG:C++ 5 */ 6 #include "iostream" 7 #include "cstdio" 8 #include "cstring" 9 # 阅读全文
posted @ 2017-07-17 13:25 wolf940509 阅读(144) 评论(0) 推荐(0)
摘要:石子合并 链接 分析:dp[i][j]表示从i顺时针数j个位置的最大值,规划方向是顺推,初始时dp[i][i]=0。显然,我们需要求出合并个数为2,3,,,,n的情况,对于dp[i][j]我们假设最后一次合并位置为k,dp[i][j]=dp[i][k]+dp[k+1][j]+sum[i,j],因为s 阅读全文
posted @ 2017-07-17 01:46 wolf940509 阅读(204) 评论(0) 推荐(0)
摘要:链接 分析:依赖型0-1背包问题,对于一个主件,可以挂0个,1个,2个附件,所以最终为4种状态情况下的最大值。 1 #include "iostream" 2 #include "cstdio" 3 #include "cstring" 4 #include "string" 5 using nam 阅读全文
posted @ 2017-07-13 12:54 wolf940509 阅读(166) 评论(0) 推荐(0)
摘要:链接 分析:对于任意一个数,它的约数总是成对出现的,但是对于完全平方数,它因为有两个约数不相等,所以只会出现奇数次,所以最终的结果就是减去完全平方数 1 #include "iostream" 2 #include "cstdio" 3 #include "cstring" 4 #include " 阅读全文
posted @ 2017-07-11 09:40 wolf940509 阅读(119) 评论(0) 推荐(0)
摘要:链接 分析:码农模拟题,首先我们先求出对于0来说满足条件的数,然后在从集合当中筛选出任意两个都满足条件的数即可 1 /* 2 PROB:hamming 3 ID:wanghan 4 LANG:C++ 5 */ 6 #include "iostream" 7 #include "cstdio" 8 # 阅读全文
posted @ 2017-07-11 09:04 wolf940509 阅读(109) 评论(0) 推荐(0)
摘要:链接 分析:因为数据范围比较小,我们可以通过二进制枚举子集,然后找出所需饲料种数最小的并记录下来,同时记录一下路径,也就是字典序最小的 1 /* 2 PROB:holstein 3 ID:wanghan 4 LANG:C++ 5 */ 6 #include "iostream" 7 #include 阅读全文
posted @ 2017-07-10 10:34 wolf940509 阅读(139) 评论(0) 推荐(0)
摘要:链接 分析:首先我们先对其进行排序,并看排序以后有多少个元素顺序是对的,接着我们看有多少个元素经过一次交换可以得到的,最后剩下的元素就是经过两次交换可以得到的了。 1 /* 2 PROB:sort3 3 ID:wanghan 4 LANG:C++ 5 */ 6 #include "iostream" 阅读全文
posted @ 2017-07-09 11:06 wolf940509 阅读(192) 评论(0) 推荐(0)
摘要:链接 分析:遍历一下,求个gcd即可,最后按照ans排序并去重 1 /* 2 PROB:frac1 3 ID:wanghan 4 LANG:C++ 5 */ 6 #include "iostream" 7 #include "cstdio" 8 #include "cstring" 9 #inclu 阅读全文
posted @ 2017-07-05 00:06 wolf940509 阅读(195) 评论(0) 推荐(0)
摘要:链接 分析:先暴力求出联通块数和最大联通块包含多少,接着对于每个位置判断去掉其上下左右的四个位置的墙之后的最大联通块数,并且记得先选最西,然后选最南的顺序了来输出 1 /* 2 PROB:castle 3 ID:wanghan 4 LANG:C++ 5 */ 6 #include "iostream 阅读全文
posted @ 2017-07-04 14:41 wolf940509 阅读(136) 评论(0) 推荐(0)
摘要:A题 分析:直接贪心即可,注意要long long 1 #include "iostream" 2 #include "cstdio" 3 #include "cstring" 4 #include "string" 5 using namespace std; 6 const int maxn=1 阅读全文
posted @ 2017-07-02 13:56 wolf940509 阅读(136) 评论(0) 推荐(0)
摘要:链接 分析:满足题目条件的必然是1,2,3,5,7,9这几个数字的组合,DFS按位进行即可,边组合边判断是否合法。 1 /* 2 PROB:sprime 3 ID:wanghan 4 LANG:C++ 5 */ 6 #include "iostream" 7 #include "cstdio" 8 阅读全文
posted @ 2017-07-01 09:39 wolf940509 阅读(149) 评论(0) 推荐(0)