随笔分类 - OJ_Codeforces
摘要:题目链接:http://codeforces.com/problemset/problem/710/E 加或者减一个字符代价为x,字符数量翻倍代价为y,初始空字符,问你到n个字符的最小代价是多少。 dp[i]表示i个字符的最小代价。 当i为偶数个的时候,由+1或者*2得到。 当i为奇数个的时候,由+
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/711/D 给你一个n个节点n条边的有向图,可以把一条边反向,现在问有多少种方式可以使这个图没有环。 每个连通量必然有一个环,dfs的时候算出连通量中点的个数y,算出连通量的环中点的个数x,所以这个连通量不成
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/711/C 给你n棵树,m种颜色,k是指定最后的完美值。接下来一行n个数 表示1~n树原本的颜色,0的话就是没颜色(一定要上色),非0就是有颜色(不能上色)。 接下来n行 每行m个数,第i行第j个数表示 编号
阅读全文
摘要:题目链接:http://codeforces.com/gym/100548/attachments 有n个物品 m种颜色,要求你只用k种颜色,且相邻物品的颜色不能相同,问你有多少种方案。 从m种颜色选k种颜色有C(m, k)种方案,对于k种颜色方案为k*(k-1)^(n-1)种。但是C(m, k)*
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/660/C 尺取法
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/706/C 给你n个字符串,可以反转任意一个字符串,反转每个字符串都有其对应的花费ci。 经过操作后是否能满足字符串str[i]>=str[i-1],能就输出最小花费,不能输出-1。 dp[i][0] 表示不
阅读全文
摘要:题目链接:http://codeforces.com/contest/706/problem/D 题意很简单不多说。 把一个数当作二进制插入字典树中,按照xor的性质,1找0,0找1,贪心即可。 注意的是一开始集合中就有0,所以一开始'?'查询时输出他本身。 1 //#pragma comment(
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/616/E 题意很简单就不说了。 因为n % x = n - n / x * x 所以答案就等于 n * m - (n/1*1 + n/2*2 ... n/m*m) 在根号n复杂度枚举x,注意一点当m>n时,
阅读全文
摘要:题目链接:http://codeforces.com/contest/597/problem/C 给你n和数(1~n各不同),问你长为k+1的上升自序列有多少。 dp[i][j] 表示末尾数字为i 长度为j的上升子序列个数,但是dp数组是在树状数组的update函数中进行更新。 update(i,
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/516/B 一个n*m的方格,'*'不能填。给你很多个1*2的尖括号,问你是否能用唯一填法填满方格。 类似topsort,'.'与上下左右的'.',的相连。从度为1的点作为突破口。 1 //#pragma c
阅读全文
摘要:题目链接:http://codeforces.com/contest/703/problem/D 给你n个数,m次查询,每次查询问你l到r之间出现偶数次的数字xor和是多少。 我们可以先预处理前缀和Xor[i],表示1~i的xor和。因为num^num=0,所以Xor[r] ^ Xor[l - 1]
阅读全文
摘要:题目链接:http://codeforces.com/contest/560/problem/E 给你一个n*m的网格,有k个坏点,问你从(1,1)到(n,m)不经过坏点有多少条路径。 先把这些坏点排序一下。 dp[i]表示从(1,1)到第i个坏点且不经过其他坏点的路径数目。 dp[i] = Luc
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/686/C 给你n和m,问你有多少对(a, b) 满足0<=a <n 且 0 <=b < m 且a的7进制和n-1的7进制位数相同 且b的7进制和m-1的7进制位数相同,还有a和b的7进制上的每位上的数各不相
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/180/E 给你n个数,每个数代表一种颜色,给你1到m的m种颜色。最多可以删k个数,问你最长连续相同颜色的序列的长度是多少。 将相同颜色的下标存到对应颜色的容器中,比如ans[a[i]].push_back(
阅读全文
摘要:比赛链接:http://codeforces.com/contest/702 A. Maximum Increase A题求连续最长上升自序列。 [暴力题] for一遍,前后比较就行了。 1 #include <algorithm> 2 #include <iostream> 3 #include
阅读全文
摘要:题目链接:http://codeforces.com/contest/474/problem/F 题意简而言之就是问你区间l到r之间有多少个数能整除区间内除了这个数的其他的数,然后区间长度减去数的个数就是答案。 要是符合条件的话,那这个数的大小一定是等于gcd(a[l]...a[r])。 我们求区间
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/697/D 给你一个有规则的二叉树,大概有1e18个点。 有两种操作:1操作是将u到v上的路径加上w,2操作是求u到v上的路径和。 我们可以看出任意一个点到1节点的边个数不会超过64(差不多就是log2(1e
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/691/D 给你n个数,各不相同,范围是1到n。然后是m行数a和b,表示下标为a的数和下标为b的数可以交换无数次。问你最后字典序最大的数列是什么。 将下面的a和b用并查集联系起来存到祖节点对应的数组中,然后从
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/449/C 给你n个数,从1到n。然后从这些数中挑选出不互质的数对最多有多少对。 先是素数筛,显然2的倍数的个数是最多的,所以最后处理。然后处理3,5,7,11...的倍数的数,之前已经挑过的就不能再选了。要
阅读全文
摘要:题目链接:http://codeforces.com/contest/675/problem/E 你可以从第 i 个车站到 [i + 1, a[i]] 之间的车站花一张票。 p[i][j]表示从 i 到 j 最少花费多少张票,问你 ∑p[i][j] (1<=i<j<=n) 是多少。 设dp[i]表示
阅读全文

浙公网安备 33010602011771号