上一页 1 2 3 4 5 6 7 ··· 15 下一页
摘要: 通道思路:可以证明点(x,y)与(0,0)所连线段上不包含原点有的点为gcd(x,y)于是问题就变成了求gcd(x,y)(1 #include#include#include#include#define inf 0x7fffffff#define ll long longusing namespa... 阅读全文
posted @ 2015-08-17 21:41 mithrilhan 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 通道题意:有三个数N, M, K, 然后N个特定序列。 从这特定的序列里必须改变K个数字, 取值范围为 [1,M]。 然后求出各序列的最大公约数为1~M分别多少个思路:代码:#include #include #include using namespace std;//const int V = ... 阅读全文
posted @ 2015-08-17 21:40 mithrilhan 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 通道题意:这题求[1,n],[1,m]gcd为k的对数。而且没有顺序思路:设f(k)为gcd(x,y)=k的数对(x,y)的对数,我们要求的是f(1)设F(k)为gcd(x,y)为k的倍数的数对(x,y)的对数,可以想到F(k)=floor(b/k)*floor(d/k),由莫比乌斯反演得:令lim... 阅读全文
posted @ 2015-08-17 21:39 mithrilhan 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 通道题意:给出n, m, p,求有多少对a, b满足gcd(a, b)的素因子个数#include #include using namespace std;typedef long long ll;template inline bool rd(T &ret) { char c; int s... 阅读全文
posted @ 2015-08-17 21:39 mithrilhan 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 通道题意:求gcd(a,b,c) = 1 a,b,c typedef long long ll;template inline bool rd(T &ret) { char c; int sgn; if(c = getchar() , c == EOF) return false; ... 阅读全文
posted @ 2015-08-17 21:38 mithrilhan 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 通道题意:给出n个数,m组序列,然后每次可以选择一个序列给对应的每个数加定值,及询问该组对应数之和思路:可以知道修改某一组后,肯定对应和其他组有相交部分也要对应修改,每次去修改肯定不现实,然后对于sqrt(n)以内的数可以O(n)修改,其他的只要计算对应的增量即可,然后维护对于大于sqrt(n)的序... 阅读全文
posted @ 2015-08-17 20:09 mithrilhan 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 通道题意:询问[l,r]区间的权和,权定义为sum(k^2*a[i]),k表示a[i]出现的次数思路:区间每增加一个a[i],增量是(2*x+1)*a[i],因为(x+1)^2*a[i] = (x^2 +2*x + 1)*a[i]分块排序即可,块内按r排序代码:#include #include #... 阅读全文
posted @ 2015-08-17 18:20 mithrilhan 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 通道题意:区间[L, R] 之间排序后有多少段连续的数思路:一个一个的向里面添加,只需要判断a[i]-1 和 a[i]+1是否已经添加在内,如果两个都在,则总段数减1,如果两个都不在,总段数加1,其他情况总段数不变代码:分块、#include #include #include #include u... 阅读全文
posted @ 2015-08-17 13:45 mithrilhan 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 通道题意:区间涂色,询问区间内颜色相同的个数思路:将原区间划分乘sqrt(n)个区间,每次暴力查询和跟新两边的区间,中间的区间直接用hash存每种颜色的节点的数量。这里用到了类似线段树的lazy思想,区间成段修改直接打个标记,等到要划分这个区间的时候先把标记传下去,然后更新代码:#include #... 阅读全文
posted @ 2015-08-17 13:17 mithrilhan 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 通道题意:给一个树,树上每个节点都有两个属性:忠诚度和能力,给出若干查询,求每个子树中能力 > 树根能力的点中,忠诚度最高的那个思路:子树dfs序即可,然后忠诚度排个序,取能力值大于u且忠诚度最高的,虽然线段树也可以搞,练练分块。代码:#pragma comment(linker, "/STACK:... 阅读全文
posted @ 2015-08-17 10:37 mithrilhan 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 通道题意:有一个5*6的矩阵,每个位置都表示按钮和灯,1表示亮,0表示灭。每当按下一个位置的按钮,它和它周围灯的状态全部翻转,问在这样的一个方阵中按下哪些按钮可以把整个方阵都变成灭的,这时1表示按了,0表示没按代码:#include #include #include #include #inclu... 阅读全文
posted @ 2015-08-16 19:19 mithrilhan 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 通道题意:从1开始 每次等概率从一个点到和他相邻的点 有向 走到不能走停止 求停止时每个点的期望思路:白书P156代码:#include #include #include #include using namespace std; const int N = 105; co... 阅读全文
posted @ 2015-08-15 23:02 mithrilhan 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 通道题意:按要求建一棵树,求树上的价值=sum(len*cnt),len为回文长度,cnt为该回文在树上出现了多少次思路:建好树从0开始往下跑就可以了,每跑完一条链,就回溯下。代码:#pragma comment(linker, "/STACK:102400000,102400000")#inclu... 阅读全文
posted @ 2015-08-15 22:40 mithrilhan 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 通道题意:相交回文对数思路:用总的方案数减去不相交方案数,注意内存优化,邻接表表示代码:#include #include #include #include using namespace std;typedef long long ll;typedef pair pii;const int MA... 阅读全文
posted @ 2015-08-15 21:32 mithrilhan 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 通道题意:求不相交回文对数思路:dp[i]代表以i为结尾有多少个回文,然后在求个前缀和,dp[i]就代表[1,i]以每一个结尾共有多少个,然后结果就是sum(dp[i-1]*add(s[len-i-1]))代码:#include #include #include using namespace s... 阅读全文
posted @ 2015-08-15 21:31 mithrilhan 阅读(195) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 15 下一页