Fork me on GitHub
摘要: 题目描述首先所有的灯都是关的(注意是关!),编号为1的人走过来,把是一的倍数的灯全部打开,编号为二的的把是二的倍数的灯全部关上,编号为3的人又把是三的倍数的灯开的关上,关的开起来……直到第N个人为止。给定N,求N轮之后,还有哪几盏是开着的。1 #include#include #in... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(185) 评论(0) 推荐(0)
摘要: #include#include#include#include#include#includeusing namespace std;int n;int ans[10];int a1[]={0,31,28,31,30,31,30,31,31,30,31,30,31};int a2[... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(84) 评论(0) 推荐(0)
摘要: https://www.luogu.org/problem/show?pid=1201#sub注意的问题:送出去的钱是整数!#include#include#include#include#include#include#include using namespace std;int... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(110) 评论(0) 推荐(0)
摘要: https://www.luogu.org/problem/show?pid=3402 先看一下数据规模:n#include#include#include#include#include#includeusing namespace std;map ma; int n,m;in... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(266) 评论(0) 推荐(0)
摘要: 纪念一下,这是我自己第一个自己想出转移方程的dp题! 先定义一下数组,f[i][j]表示第i个人,抄了j本书花的最短时间。 w[i][j]表示[i,j]闭区间内,从第i本书抄到第j本书用的时间; 转移方程:f[h][i]=min(f[h][i],max(f[h-1][j],w... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(133) 评论(0) 推荐(0)
摘要: https://www.luogu.org/problem/show?pid=3383#sub#include#include#include#include#include#include#include#define L long#define M 200000007using ... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(114) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=3292如果一个数 i 是 H-素数,那么5i+4i*x一定是H数但不是H-素数, 因为(5i+4i*x)mod 4=5i mod 4=(5 mod 4)(i mod 4)=1*1=1,且5i+4i*x=i(4x+5).做法:先找出... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(68) 评论(0) 推荐(0)
摘要: https://www.luogu.org/problem/show?pid=3518问题描述: 有一个密码箱,0 到 n-1中的某些整数是它的密码,且满足:如果a和b都是它的密码,那么(a+b)%n 也是它的密码(a,b可以相等)某人试了k次密码,前k-1次都失败了,第k次成功了。... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(161) 评论(0) 推荐(0)
摘要: https://www.luogu.org/problem/show?pid=1052 观察数据,L到10^9,就是O(n)也不可以。 然后再观察数据,发现共才100个石子,对于桥的长度来说石子非常稀疏,中间有一大块空白区域。 状态转移方程: f[i]=min(f[i],f[i-... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(140) 评论(0) 推荐(0)
摘要: https://www.luogu.org/problem/show?pid=1004#sub 四维做法基于可以看做俩个人,同时走。 从左上角到右下角步数是一定的,所以可以压缩到三维。#include#include#includeusing namespace std;int f... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(155) 评论(0) 推荐(0)
摘要: https://www.luogu.org/problem/show?pid=1006#sub 和方格取数类似,可以看做同时从左上角出发,同时走,步数是同步的。 可以用四维数组,也可以用三维数组。 从左上角到右下角,步数是两点的曼哈顿距离。 得到状态转移方程 :int h=max(m... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(115) 评论(0) 推荐(0)
摘要: https://www.luogu.org/problem/show?pid=1387法1:矩阵前缀和(n^3) 枚举点i,j 和边长o,如果右下角与左下角之间的数是完全平方数,既是正方形。#include#include#include#include#include#includ... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(146) 评论(0) 推荐(0)
摘要: https://www.luogu.org/problem/show?pid=1313 系数应该是a^n*b^m*c(n,m),主要是求c(n,m) c(n,m)=n!/m!*(n-m)! 法1: 分解质因子#include#includeint su[20000],yz[2000... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(97) 评论(0) 推荐(0)
摘要: 评测 题目描述同上题。 其中n#include#include#define LL long long#define M 2147483647using namespace std;int n,a[300005],len;int up[300005];//up[i]记的是长度为i的的... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(96) 评论(0) 推荐(0)
摘要: https://www.luogu.org/problem/show?pid=1020 法一,dp 第一问要求一个以第一个为起点最长不上升子序列。 第二问,只要后面的比前一个高,就要再另用一套系统,所以问题可以转化为求最长的上升子序列。#include#include... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(106) 评论(0) 推荐(0)
摘要: 由题目可得式子:m*t-n* t=y-x+q * l - - -> (n-m)*t+q*l=x-y令a=n-m,b=lc=x-y; a*t+b*l=c 求最小的正t令z=gcd(a,b) 先求a*t+b*q=z ① 当然如果c/z!=0就无解了 得出一组解t... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(351) 评论(0) 推荐(0)
摘要: https://www.luogu.org/problem/show?pid=1290#sub 这题目好像辗转相除。 每次的两个数 a , b (a>b) 分为两种情况: 一, 此时状态为: a/b>1 ,那最完美的做法是取走(a/b-1)*b,那么剩下的两个数就为(a%b+b,b... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(101) 评论(0) 推荐(0)
摘要: 题目描述求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解。(保证有解)该方程等价于=>a* x-b* y=1 => a* x+b* y=1 (1/GCD(a,b)==0,即a,b互质)#include#include#define LL long longusi... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(111) 评论(0) 推荐(0)
摘要: https://www.luogu.org/problem/show?pid=1018#sub 其实这个数据范围貌似搜索是过不了的,但是在lg上过了 这里搜索的方法是,dfs(int x,LL ans,int bef),x表示已经用了几个乘号,ans表示前面放完乘号得到的乘积,be... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(72) 评论(0) 推荐(0)
摘要: https://www.luogu.org/problem/show?pid=1091#sub问题转化为:枚举中间点,以此为终点求最长的上升子序列,以此为起点求最长下降子序列。#include#includeusing namespace std;int q[110],fq[110]... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(122) 评论(0) 推荐(0)
摘要: 问题转化为求1-n的欧拉函数的和*2+1#include#include#include#include#include#include#include#define LL long long#define M 1009using namespace std;int phi[M],p... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(87) 评论(0) 推荐(0)
摘要: 首先有以下性质:(p 为素数) 1. φ(p)=p-1 2. 如果i mod p==0,那么φ( i*p )=p*φ( i ) 3. 若i mod p≠0,那么φ(i*p)=φ(i)*(p-1)证明见http://blog.csdn.net/Lytning/article/deta... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(114) 评论(0) 推荐(0)
摘要: 【问题描述】 在一片草原上有N个兔子窝,每个窝里住着一只兔子,有M条路径连接这些窝。更特殊地是,至多只有一个兔子窝有3条或更多的路径与它相连,其它的兔子窝只有1条或2条路径与其相连。换句话讲,这些兔子窝之前的路径构成一张N个点、M条边的无向连通图,而度数大于2的点至多有1个。 兔子们... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(138) 评论(0) 推荐(0)
摘要: 【问题描述】 有一种圆桌游戏是这样进行的:n个人围着圆桌坐成一圈,按顺时针顺序依次标号为1号至n号。对1#include#includeusing namespace std;int n,f[109][109],dp[209][209],id[209];int main(){... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(1808) 评论(0) 推荐(0)
摘要: 【问题描述】 商店里出售n种不同品种的花。为了装饰桌面,你打算买m支花回家。你觉得放两支一样的花很难看,因此每种品种的花最多买1支。求总共有几种不同的买花的方案?答案可能很大,输出答案mod p的值。【输入格式】 一行3个整数n,m,p,意义如题所述。【输出格式】 一个整数,表示买花... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(146) 评论(0) 推荐(0)
摘要: 题目描述 历史学家小A正在研究一个奇怪的王国的历史。当前阶段的任务是研究该国的交通。 根据这个奇怪的王国的史书记载,史书开始记载前这个王国有 n 个城市(城市从 0 开 始标号) ,但所有城市之间都没有道路相连。 每一年,在位的国王会修建一条 x 到 y 的双向道路,一条道路可能被修... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(263) 评论(0) 推荐(0)
摘要: 把直接认识的人小于d的人删去,然后染色,找最大值就可以了。 一开始删点时,将已经删过的点重复入队,把它的临接点的du多次重复地减,导致出错。#include#include#include#include#include#include#define N 200009using n... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(94) 评论(0) 推荐(0)
摘要: 60分的做法:O(n^2) 处理出矩阵的前缀和,那么就可以O(1)地查询任意矩阵的大小,O(n^4)枚举所有矩阵,求出答案。100分的做法: 对于1号点和2号点,它们两个结合是对答案的贡献是: 2∗a[i1][j1]∗a[i2][j2]−−−① + a[i1][j1]2+a[i2... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(162) 评论(0) 推荐(0)
摘要: 这数据写个暴力都拿不了30分 T_T。 C(n,i)*C(n,i)=C(n,i)*C(n,n-i) => 结合现实意义,在n个里面选 i 个,再在n个里面选n-i个的方案数。 就等价于在前n个中选 i 个,在后n各种选n-i个。而且i = 0~n => 在2*n各种选n个。 那么... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(113) 评论(0) 推荐(0)
摘要: 贪心。 要使得人数最小,必须使最后剩下活着的人最少。 那就按照b-a(剩下人数)降序排序#include#include#include#include#include#define LL long long#define N 100009using namespace std;... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(160) 评论(0) 推荐(0)
摘要: HDU 传送门 很显然,组合数。 输出C(n,m)就可以了。 因为询问比较多,所以用杨辉三角就可以了。#include#include#include#include#include#define LL long long#define MOD 1000000007using nam... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(103) 评论(0) 推荐(0)
摘要: uoj 传送门 蒟蒻做这个题是一懵一懵的啊。题意就好难懂! 我们以 || 为分界线,分成若干块。因为在每一小块中有0这一块的返回值就是0,在整个表达式中有某一块的返回值为1,那整个式子就是1,剩下的块都不用算了。 只有当手机返回值为1时才能造出手机。而且在当前这块中复制出的手机,在下... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(158) 评论(0) 推荐(0)
摘要: uoj 传送门 列与行之间单独处理。 对于列之间,我们判断dis只需要看b数组就可以了。 同理对于行只看a数组就可以了。#include#include#include#include#include#include #include#define N 200009#define L... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(81) 评论(0) 推荐(0)
摘要: 按照正解的做法,我只得了80。首先我们要明确这是一张竞赛图。 然后有一个点,在竞赛涂上如果存在环,那么就一定有三元的环。解释如下 这样找到的第一个三元环是1->3->4->1观察一下图,看一下代码。嘻嘻 shipinjiangjie#include#include#include... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(125) 评论(0) 推荐(0)
摘要: 分析一下我们需要找一个最大的集合,使得集合内的任一成员相互之间没有发生过争吵。 我们知道,两个人没有发生过争吵的条件是小的在前,大的在后。那么一列人不会发生争吵的条件是这是一个上升子序列。 那么题目就是要求我们用nlogn的方法求最长的上升子序列(板子题嘛)。 对于nlogn求上升... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(78) 评论(0) 推荐(0)
摘要: len#include#include#include#includeusing namespace std;char s[1009],m[1009],a[1009];//密文,明文,解密 int f[30],f2[30];int main(){ cin>>m+1;cin>>... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(107) 评论(0) 推荐(0)
摘要: HDU 传送门 开始肯定是先将区间按照 l 然后 r 升序排序。 我的做法:再合并一下区间(能合并的就合并)。 我一开始想了一种可能会超时的做法,我枚举x区间,计算从第x个区间后面的间隙开始补签,一直更新最大值,貌似真的会超时。然后我又想了用前缀和来优化一下,应该会过的。然后我获悉了... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(157) 评论(0) 推荐(0)
摘要: luogu 传送门倍增吗? 我们定义 f[k][i][j] 表示从点 i 到点 j 能否通过跳2^k(1秒)直接跳到,跳到为1,否则为0; 那么就有如果 f[k-1][i][j]&&f[k-1][i][j] 则f[k][i][j]=1; (想一想就是啊)如果可以一步跳到的,di... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(114) 评论(0) 推荐(0)
摘要: luogu 传送门介绍一下我的做法: 对房子按照坐标排序,对每一个房子,记一下前缀和后缀和(前面/后面房子中的人到当前房子的路程和), 最后扫一遍取前缀和和后缀和的和的min就可以了。但是好像跟样例解释不太一样啊。#include#include#include#include#in... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(182) 评论(0) 推荐(0)
摘要: luogu 传送门 我们可以设一个矩阵A={p , 1 q , 0}ans矩阵{a2 , a1},用ans矩阵*A矩阵的n-2次方,ans[1][1]就是答案了。 正确性自己在纸上画一画就显而易见了。... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(184) 评论(0) 推荐(0)
摘要: HDU 传送门 这是一道变形的完全背包。 我们用dp[i][j]表示打倒血量为i防御力为j的恶魔的最小花费。#include#include#include#include#include#define LL long long#define INF 0x3f3f3f3fusing ... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(153) 评论(0) 推荐(0)
摘要: uoj 传送门这是uoj上的题解先写了一个45分的dfs#include#include#include#include#include#define LL long longusing namespace std;LL n,m,ans[50],P=1;void dfs(int x,... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(179) 评论(0) 推荐(0)
摘要: luogu 传送门 矩阵乘法快速幂,注意记录过程量; 还有就是如果前面已经算过了,直接赋值就好了。#include#include#include#include#include #define LL long long#define MOD 1000000007using name... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(112) 评论(0) 推荐(0)
摘要: uoj 传送门 第一次做交互题,大概明白了是啥意思,就是写一个函数,帮助实现一个操作。 题目中有要求,调用题目中给出的可以用的函数次数越少越好,这就是优化所在。 这道题就是在三个升序数组中找所有数的第K大,我们要尽量少用题目中已给出的函数。 我们每次现在三个数组中找出第k/3大,k-... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(179) 评论(0) 推荐(0)
摘要: luogu 传送门 我们只要判断到路口时是不是绿灯,如果是绿灯就可以直接输出,否则加上等待时间。 判断时,取模就好啦。#include#include#include#include#include#includeusing namespace std;int n,m,a[10000... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(222) 评论(0) 推荐(0)
摘要: 仔细分析,发现要使最大不满意度最小,排队顺序应该是按照最长等待时间来排。 如果不是这样,交换任意两个人的位置,那么这两个人等待时间的最大值一定比原来大。 所以这样排的正确性显然。#include#include#include#include#define LL long long... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(103) 评论(0) 推荐(0)
摘要: 50%的做法:枚举每一个点,一直走到尽头,记录长度,更新答案。像这样的有n条边,n个点,每个点都有一条出边的点一定存在环。这样的图叫做 环加外向树。那么对于这道题的满分做法,先求出每颗树的叶子到树根的最长路径记为f[i],再找出环,然后每次枚举环上的点x,(环的长度len),用l... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(187) 评论(0) 推荐(0)
摘要: time:3s 难度:Day2 T3 长长的题面 这是一道好难的题。 正解是DP+单调队列。(蒟蒻不会啦,看了题解也迷迷糊糊) 我只写了一个裸的DP,期望值60分,意外惊喜地拿了80分,好开心。 我们枚举时间,f[t][i][j][k]表示第t秒站在(i,j),已经用了k次闪现... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(234) 评论(0) 推荐(0)
摘要: 问题描述 平面上有N条直线,用方程Aix + Biy +Ci =0表示。这些直线没有三线共点的。现在要你计算出用这些直线可以构造出多少三角形?输入格式 第1行:一个整数N(1 ≤ N≤ 300000)。 下面N行:每行3个整数:Ai, Bi 和Ci,表示对应直线方程的系数。不超过10... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(133) 评论(0) 推荐(0)
摘要: 问题描述 有N辆列车,标记为1,2,3,…,N。它们按照一定的次序进站,站台共有K个轨道,轨道遵从先进先出的原则。列车进入站台内的轨道后可以等待任意时间后出站,且所有列车不可后退。现在要使出站的顺序变为N,N-1,N-2,…,1,询问K的最小值是多少。对于30%的数据,N≤10; 对... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(104) 评论(0) 推荐(0)
摘要: 50%的做法: 先按照s升序排序。 从小到大枚举maxg,把g小于maxg的边全部选出来,(因为前面已经排过序了),造一棵最小生成树,更新答案。时间复杂度≈O(m*m)。 100分的做法: 按照g升序排序。 维护一个n-1条边的边集,是上一个建造的最小生成树的边集。 从前往后枚... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(120) 评论(0) 推荐(0)
摘要: 二分答案,check()用two point写#include#include#include#define LL long long#define N 200009using namespace std;int n,m;LL k;LL a[N],b[N],num,L,R,mi... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(99) 评论(0) 推荐(0)
摘要: 【问题描述】Vasya在玩一个叫做”Dwarf Tower”的游戏,这个游戏中有n个不同的物品, 它们的编号为1到n。现在Vasya想得到编号为1的物品。 获得一个物品有两种方式:直接购买该物品,第i件物品花费的钱为ci用两件其他物品合成所需的物品,一共有m种合成方式。请帮助Vasy... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(115) 评论(0) 推荐(0)
摘要: 【数据规模与约定】 对于 20%的数据,N≤10,-2≤a[i]#include#include#include#include #define LL long long#define N 209using namespace std;int a[N],b[N],c[N],d[N]... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(138) 评论(0) 推荐(0)
摘要: 1s 256M 这题的解法好巧妙。 我们可以通过dfs来处理一个 f 数组。f[i]表示以i为根的子树有多少个节点。 那么当我们从1到n枚举每个块的大小时(n%i==0),然后扫一遍 f 数组,f[]为 i 的倍数的个数如果等于n/i,那么就是一种成功的方案。#inclu... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(101) 评论(0) 推荐(0)
摘要: 二分答案。 关键在于check()的写法。20分的写法: check(x) 中O(n*n)的写法:直接枚举起点,一直往后加,一旦>x,就加一张菜单,如此枚举。60分的写法: 二分加二分。用一个前缀和来优化。 check(x)中枚举起点s,设当前这一张菜单的起点为L,那么下一个起点就... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(150) 评论(0) 推荐(0)
摘要: luogu 传送门 注意: 真正的规则:达到11或21分后,要等到两人分值差>=2时才算完成一局。#include#include#include#include#include#includeusing namespace std;char c,a[100001];int numw... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(315) 评论(0) 推荐(0)
摘要: 数据范围 对于 20%的数据,n=5 对于 60%的数据,n#include#include#include#define LL long long#define M 1000000000using namespace std;int n,a[409];int f[409][409... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(212) 评论(0) 推荐(0)
摘要: 题目大意: 给出x1 ,y1 ,r1 ,x2 ,y2 ,r2,代表两个圆。 计算两个圆覆盖的面积。 重叠时,ans=S圆-S扇+S三角形。#include#include#include#define P(x) (x)*(x)#define Pai 3.1415926 using n... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(114) 评论(0) 推荐(0)
摘要: P1896 https://www.luogu.org/problem/show?pid=1896 这是一道状压dp题(状态压缩)。It`s the first time that I had accepted a zhuangya dp problem! 把一行每一位放与不放用二进... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(175) 评论(0) 推荐(0)
摘要: 、约瑟夫问题,数组链表可以过的。而且贼快。#include#include#include#define N 100009using namespace std;int n,t,L[N],R[N],p,d,rest;bool f[N];int main(){ freopen("... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(192) 评论(0) 推荐(0)
摘要: 最大值的求法:h[i][j]的高度为min(h1[i],h2[j]);既保证不会超过最大值,又能尽量的大。 最小值的求法:先考虑没有重复的,每一个高度都需要加上。除了需要看见的,其他的都设为零。 在每一行放置的时候,如果某一列中有与他相等的,且还没有放置 ,就可以将这两个柱子重合... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(109) 评论(0) 推荐(0)
摘要: 样例有误 应该输出 0 1000000006刚看到这个题,一脸懵逼。打个表观察一下 发现,除了做一次gcd时,如果做 t 次gcd,那么和最小的 a 和 b 分别是斐波那契数列的f[t+1]和f[t+2]。由于k很大,用矩阵快速幂即可。 而做一次就是 1 1(需要特判)打表程序... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(299) 评论(0) 推荐(0)
摘要: 题目描述: 给出T个n,求斐波那契数列的f(f(n)).(答案取模1e9+7) 数据范围: 100% 1#include#include#include#define ull unsigned long longusing namespace std;long long a,b,c,... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(874) 评论(0) 推荐(0)
摘要: luogu 传送门 矩阵乘法的法则 矩阵乘法的法则#include#include#include#include#include #define LL long long#define MOD 1000000007using namespace std;LL a[109][109]... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(152) 评论(0) 推荐(0)
摘要: uoj 传送门题目大意:给出一串字符串,求它的子串中形如AABB的方案个数。90% len#include#include#include#include #define LL long long#define MOD 1000000009#define base 163#defin... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(100) 评论(0) 推荐(0)
摘要: luogu 传送门直接上板子#include#include#include#include#include #define LL long long#define MOD1 1000000007#define MOD2 1000000009#define seed1 163#def... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(161) 评论(0) 推荐(0)
摘要: 30分做法:n^4枚举边. 100分做法: 枚举每一条边,设两个端点为x,y; 我们通过组合公式来计算 Y 的个数,每一次加上C(num[x]-1)*(num[y]-1); 通过记连接一个点的边的最大值,次大值,第三大值。 加上除去枚举的边外x连接的最大的两条边,以及y连接的除去… ... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(110) 评论(0) 推荐(0)
摘要: 问题的实质是要我们求两个分数的最小公倍数。 首先,我们要知道,整数a和b的最小公倍数是a*b/gcd(a,b); 那么怎样来求分数的最小公倍数呢? 我们可以先将两个分数通分,分母变为t1,然后再求分子的最小公倍数t2。 那么答案就是t2/t1, 注:最后要约分.#include#in... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(206) 评论(0) 推荐(0)
摘要: luogu 传送门bfs拓展嘛。 不过这里有一点特别之处,就是记录状态时要三维,f[i][j][0/1],代表到了(i , j)这个点是否使用过向量。 在bfs中往四面走,如果没有使用过向量,就再拓展一下使用向量的。(还是比较容易啦)#include#include#include#... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(113) 评论(0) 推荐(0)
摘要: luogu 传送门挺好想的贪心(蒟蒻一下就想到啦)。 我们从前往后处理时,尽量吃后面的糖,因为后面的糖会对后面产生影响,而前面的就不会影响了。 不过要开long long ,为此我wa了两个点。#include#include#include#include#include#defi... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(140) 评论(0) 推荐(0)
摘要: 有时候我们对于一个题先写了不确定的貌似是正解的程序,然后又写了保证正确的暴力。 那么我们怎样来确定我们想的正解对不对呢?对拍。 对拍我们需要这样几个文件: data是数据生成器,right是暴力,test是待定正确程序。 举一个a+b的例子,里面是这样写的。data.cpp#incl... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(118) 评论(0) 推荐(0)
摘要: luogu 传送门 搞了半天,终于搞了出来。 以前写过一个暴力70分的做法(点这里)在70分的基础上: 注意到只有空格在指定棋子旁边才有意义,所以可以O(n^2)记录状态,记录空格在指定棋子的哪个方向。 因为询问数比较多,所以可以预处理出来【指定棋子不动,空格移动到另一边】和【棋子... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(127) 评论(0) 推荐(0)
摘要: luogu 传送门 双倍经验! 树状数组题 v[i]只有当和比它小的v[j]一起运算时才对答案有贡献。 我们可以这样来处理,离线来做。将所有奶牛按照v升序排序,然后一个奶牛一个奶牛的查询,再插入。 我们要树状数组来维护一个数组cnt[i],和sum[i]表示i-lowbit... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(172) 评论(0) 推荐(0)
摘要: 给出一段序列,选出其中连续且非空的一段使得这段和最大。 注:非空 是dp吧;#include#include#include#include#includeusing namespace std;int a[200010],f[200010];int main(){ int n... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(101) 评论(0) 推荐(0)
摘要: luogu 传送门 题目描述 给出一个 n 个数的序列,为 A0,A1,„„,An-1,循环移动 k 位之后,这个序列就变 成了 Ak,Ak+1,,,,An-1,A0,A1,,,,Ak-1。一种优秀的循环移动是,对于任意的 前 i(1#include#include#include ... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(192) 评论(0) 推荐(0)
摘要: luogu 传送门这个题,用O(n)真的可以吗?大概是洛谷数据太弱了。#include#include#include#include #define LL long longusing namespace std;int n;LL ans=1;LL work(LL x){ w... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(97) 评论(0) 推荐(0)
摘要: 水#include#include#includeusing namespace std;int n,ans;char a[109];int main(){ scanf("%d",&n); cin>>a; int s=0; for(int j=0;j<n;j+... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(227) 评论(0) 推荐(0)
摘要: 大大大水题。#include#include#includeusing namespace std;int n;char a[100];int main(){ scanf("%d",&n); for(int i=1;i>a; int x=a[strlen(a... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(105) 评论(0) 推荐(0)
摘要: https://www.luogu.org/problem/show?pid=1821大体描述一下题意:一张图,边为有向边,给出一个点 s,求其它点最大的从 x 到 s 和从 s 到 x 的最短路之和。机智的做法:我们可以跑两遍spfa,先跑出 s 到其它点的最短路,在将所有边反过来... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(138) 评论(0) 推荐(0)
摘要: https://www.luogu.org/problem/show?pid=1083#sub一开始容易想到的方法是线段树,每次修改时,如果出现负数,那么当前这个人一定不能满足了。 但是在noip里,这肯定不是正解,所以会超时那么一两个点。#include#include#inclu... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(116) 评论(0) 推荐(0)
摘要: http://codevs.cn/problem/1191/ 这个数据范围是要nlogn的做法嘛。 线段树:一开始把数组全设为1,建一下树,然后修改的时候把白球全修改成0,每次用线段树求和就好了。 不过我确实调了一个上午啊。感谢sxb大神帮我找错#include#include#de... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(171) 评论(0) 推荐(0)
摘要: https://www.luogu.org/problem/show?pid=1168#sub用上c++的stl中的优先队列,小根堆用负值来存,构成对顶堆,就变成了一道水题。#include#include#include#include#include#include#includ... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(78) 评论(0) 推荐(0)
摘要: https://www.luogu.org/problem/show?pid=3144#sub 分析:按顺序去掉点后查询图是否还是联通的,那么我们就可以按照删除的顺序倒着加点。 在加某个点之前判断图是否是联通的,即按顺序去掉这个点后图是否是联通的。 具体的处理方法:根据输出要求,我们... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(124) 评论(0) 推荐(0)
摘要: 对图染色。但是一个个地染会超时O(n^3),显然我们要用O(n^2)的做法。 因为我们对每一行的染色是一段区间的操作,所以我们可以用差分来做。枚举弦心距(0~r,一定是0~r,为什么很显然),求出弦长,根据圆心的坐标,可以求出这一行的左右端点,就可以对这段区间进行差分了。时间复杂度:... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(108) 评论(0) 推荐(0)
摘要: https://www.luogu.org/problem/show?pid=1631#sub做法: 将 a 和 b 都从小到大排一遍序。 然后组成这样一个矩阵: a1+b1 , a1+b2 , a1+b3 , …… , a1+bn a2+b1 , a2+b2 , a2+... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(181) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1984这是一道经典的带权并查集,每插入一个点,维护两个权值的数组,代表关于根节点的x坐标和y坐标, 记录这两个权值数组就可以了。W是x减,E是x加,N是y减,S是y加。 合并时,注意一些细节。(注意我们输入的是x和y之间的距离,记... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(162) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1850首先应该判断一下给出的字符串是否为升序,否则答案为0. 对于长度为L的一串,我们首先应该加上比它短的串的个数,然后再算它是长度为L的里面的第几个。 在算长度为len的串的个数的时候,因为都是升序的,特定的几个字符组成的串没有... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(73) 评论(0) 推荐(0)
摘要: https://www.luogu.org/problem/show?pid=1908 做法:O(nlogn) 每次加入一个数,把当前输入进的数中比这个数大的数求和,用树状数组b来维护,b[i]表示的是 i~i+lowbit(i) 的个数和,每输入进一个数,就把b数组更新.#incl... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(115) 评论(0) 推荐(0)
摘要: codevs 1262 http://codevs.cn/problem/1262/ 这是一个组合数问题,因为只能是升序,那题目就是在问你:C(3,j-1)是几。#include#include#includeusing namespace std;long long ans... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(80) 评论(0) 推荐(0)
摘要: 问题描述 暑假到了,Rick制定了一个长达M天的阅读计划。他一共有N本书,从1至N进行标号;Rick将它们从上至下摞成一堆。他每天都会读一本书,假设他要读编号为X的书,他会按照以下步骤: 1. 将这本书上方的所有书搬起来 2. 将这本书拿出来 3. 将搬起来的书摞回去 4. 看完后把... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(218) 评论(0) 推荐(0)
摘要: 问题描述 给出一个字符串S与N个操作。每个操作用三元组(L, R, K)进行描述:操作将字符串第L个到第R个位置构成的子串循环移动K次。一次循环移动就是将字符串最后的这个字符移动到第一位,其余的字符顺次后移。 例如,对于字符串abacaba,操作(L=3, R=6, K=1)后得到的... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(459) 评论(0) 推荐(0)
摘要: https://www.luogu.org/problem/show?pid=2712 拓扑排序嘛。每次找入度为零即没有被观测的摄像头砸掉,再把它所观测的摄像头的入度-1. 不过此题有一个特别坑的地方,就是摄像头的编号并不是1~n。#include#include#include#... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(132) 评论(0) 推荐(0)
摘要: 问题描述 Gob和Michael常在一起打乒乓球。他们是这样决定比赛的输赢的:比赛由若干大局组成;谁最先赢下s大局谁就获得比赛的胜利;在每一大局中,谁先得t分就获得本大局的胜利。在一次比赛中,他们只记录了比赛中的每一分是谁得的,但忘记了记录s和t。现在给出比赛的每一分的得分情况,求出... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(149) 评论(0) 推荐(0)
摘要: 问题描述(1S, 128M) 无所事事的Cinzo决定用坐电梯的方式来打发时间。他住在一个N层的房子中,最底下为1层,最高处为N层。他从他家所在的第A层出发,并决定连续坐K次电梯。 但由于迷信的缘故,B在中国被视为是不幸运的,所以整座楼并没有第B层。也是因为这个原因,如果Cinzo想... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(558) 评论(0) 推荐(0)
摘要: 问题描述 快毕业了,Barry希望能通过期末的N门考试来顺利毕业。如果他的N门考试平均分能够达到V分,则他能够成功毕业。现在已知每门的分数不能够超过R;他的第i门考试目前得分为Ai,如果想要在这门科目增加一分则需要多写Bi篇论文。Barry想知道,如果想要毕业的话,他最少需要写多少篇... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(95) 评论(0) 推荐(0)
摘要: 有一个大水题!#include#includeusing namespace std;int n,m;int num[11];int main(){ scanf("%d%d",&n,&m); for(int i=n;i<=m;i++) { int x=... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(147) 评论(0) 推荐(0)
摘要: 大水题!#include#includeusing namespace std;int k;int main(){ scanf("%d",&k); int flag=0; for(int i=10000;i<=30000;i++) { int a... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(90) 评论(0) 推荐(0)
摘要: luogu 传送门这题好生厉害!如果n再小一点的话,这题是个贪心。我们把烧到过100度的水能进行热传导就进行热传导,一直向后进行。 这种做法是O(n^2)的,显然过不了。 然后注意到,这题肯定有规律嘛!推导:设沸腾温度为a 则第一杯温度为a,需要加热t1=a 第二杯可以中和的最高温... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(156) 评论(0) 推荐(0)
摘要: luogu 传送门#include#include#include#include #include#include#include#includeusing namespace std;int n;int px[709],py[709];double f[701][701];int... 阅读全文
posted @ 2017-09-24 17:48 primes 阅读(132) 评论(0) 推荐(0)