摘要: 思路:把【1,1e8】分成每50一个区间,然后打表记录是第几个50,出的部分之间枚举,不会超过50,就是打表速度略蛋疼。 1 #include <iostream> 2 #include <queue> 3 #include <stack> 4 #include <cstdio> 5 #includ 阅读全文
posted @ 2017-04-04 23:11 Kcl886 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 1 #include <iostream> 2 #include <queue> 3 #include <stack> 4 #include <cstdio> 5 #include <vector> 6 #include <map> 7 #include <set> 8 #include <bits 阅读全文
posted @ 2017-03-31 19:44 Kcl886 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 题意:一个矩形中,有N个城市’*’,现在这n个城市都要覆盖无线,若放置一个基站,那么它至多可以覆盖相邻的两个城市。问至少放置多少个基站才能使得所有的城市都覆盖无线? 思路:每个城市才是要构造的二分图的顶点,先把每个*用数字1-n标记起来,然后构造无向二分图,无向二分图的构造需要拆点,即1<—>2之间 阅读全文
posted @ 2017-03-28 21:39 Kcl886 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 分别维护一个单调递减的队列和单调递增队列就可以了,但是这题莫名的坑,要用C++提交卡编译器的时间才能AC,真的是日了狗了,以后就用C++提交好了,不用别的了。 1 #include <iostream> 2 #include <queue> 3 #include <stack> 4 #include 阅读全文
posted @ 2017-03-04 23:57 Kcl886 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 1 #include <iostream> 2 #include <queue> 3 #include <stack> 4 #include <cstdio> 5 #include <vector> 6 #include <map> 7 #include <set> 8 #include <bits 阅读全文
posted @ 2017-03-04 01:20 Kcl886 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 题意:一个b位的数Y,每一位的数可以从题目给的n个数里面选,问有多少种方案使得Y mod x == k? 思路:数位dp,另dp[i][k]表示前i位模x结果为k的方案数,则转移方程为:dp[i][(k*10+j)%x]+=dp[i-1][k]*num[j](0<=j<=9),num[j]为题目所给 阅读全文
posted @ 2017-03-02 21:05 Kcl886 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 题意:n个人,每个人ci的金币,每天最富有的人都会给最贫穷的人1金币,问k天后最富有人和最贫穷的人差了多少金币。 思路:不妨把穷人和富人放在两个时空中step1: 假设富人不用掏钱,每天给最穷的人1枚金币。求出最穷的人金币数:xstep2: 假设穷人得不到钱,每天富人有1枚金币不翼而飞。求出最富的人 阅读全文
posted @ 2017-03-02 13:29 Kcl886 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 1 const int S = 20;//随机算法判定次数,S越大,判错概率越小 2 LL pow_mod(LL a, LL b, LL mod) { // a^b%mod 3 LL ans = 1; 4 a = a % mod; 5 while(b) { 6 if(b & 1) { 7 ans = (ans * a)... 阅读全文
posted @ 2017-02-23 22:37 Kcl886 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 题意:求a^b的所有约数和对1e9+7取模的结果 思路:对于一个数p,进行唯一分解,则p=P1^M1*P2^M2*...*Pn^Mn,则p的所有约数之和等于(P1^0+P1^1+...+P1^M1)*(P2^0+P2^1+...+P2^M2)*...*(Pn^0+Pn^1+...+Pn^Mn), p 阅读全文
posted @ 2017-02-19 23:49 Kcl886 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 题意:给定一个小写字母组成的字符串和每个小写字母最多存在长度为a[i]的子串中,输出满足条件的分割方案数,并输出所有方案中最长子串的长度和最少的分割次数。 思路:另dp[i]表示在第i个字符后面有一个横杠的方案数,从第i个往前枚举前一个横杠的位置j,设从i到合法的j的子串长度为l,则l=min(l, 阅读全文
posted @ 2017-02-09 20:07 Kcl886 阅读(294) 评论(0) 推荐(0) 编辑