摘要: 多校签到题,dfs一下就好了。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 const int N = 101; 7 int head[N]; 8 int sum[N]; 9 bool f[N];10 int n, ... 阅读全文
posted @ 2015-07-28 19:15 hxy_has_been_used 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 因为题目要求子序列中相邻元素下标的奇偶性不同所以线段树中需要维护4个值:jj,jo,oj,oo分别代表奇数开头和结尾、奇数开头偶数结尾、偶数开头奇数结尾和偶数开头和结尾的子序列的和的最大值,然后就是普通的单点修改和区间查询了。 1 #include 2 #include 3 #includ... 阅读全文
posted @ 2015-07-28 19:04 hxy_has_been_used 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 由函数f的定义可以联想到:可以在筛素数(对于普通筛法,每个合数会被自己的素因子筛去一次)的过程中获得函数的值,然后可以发现2,3,5,7,11,13,17,19乘起来已经超过了100W,所以对于100W及以内的数,函数值最多为7.然后求出前缀和,对于每一个询问,统计出每个区间内函数值为1-7的数字的... 阅读全文
posted @ 2015-07-28 18:21 hxy_has_been_used 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 题意:有[1,n]的n个数字,A和B两人每次选一个数字,并把这个数字和这个数字的所有约数删去,没有数字可选的人败,问先手必胜还是必败。思路:反推,假设先手必败,即先手无论取哪个数字,后手都可以选到一个数字x使得先手必败,那么假设先手取1,后手然后取x,那么先手只要第一次取x就可以胜,所以先手必胜。 ... 阅读全文
posted @ 2015-07-28 10:44 hxy_has_been_used 阅读(140) 评论(0) 推荐(0) 编辑
摘要: dijstra算法的变形,定义:dist[i]为源点到点i的若干路径上的边的最大值的最小值,然后会发现可以用和dijstra一样的贪心方法,当前dist最小的以后都不会再被更新。 1 #include 2 #include 3 #include 4 #include 5 using name... 阅读全文
posted @ 2015-07-28 09:48 hxy_has_been_used 阅读(135) 评论(0) 推荐(0) 编辑