随笔分类 - 题解
摘要:"Codeforces 1051 D.Bicolorings" 题意:一个2×n的方格纸,用黑白给格子涂色,要求分出k个连通块,求方案数。 思路:用0,1表示黑白,则第i列可以涂00,01,10,11,(可以分别用0,1,2,3表示),于是定义dp[i][j][k]:涂到第i列分为j个连通块且第i列
阅读全文
摘要:"2016 NEERC, Moscow Subregional Contest K. Knights of the Old Republic" 题意:有一张图,第i个点被占领需要ai个兵,而每个兵传送至该点需要bi的费用。占领第i条边需要其两端点的兵数之和大等于ci。对于已占领的点或边可以免费通行。
阅读全文
摘要:"G.Gangsters in Central City" 题意:一棵树,节点1为根,是水源。水顺着边流至叶子。该树的每个叶子上有房子。有q个询问,一种为房子u被强盗入侵,另一种为强盗撤离房子u。对于每个询问,要求给出最小的阀门数来阻断水流向强盗所在房子,且在阀门数最小的情况下求最小的误伤房子数(即
阅读全文
摘要:"2016 ACM ICPC NEERC F. Foreign Postcards" 题意:有一串由C、W组成的字符串,每次截取长度为k(1W,W C),放到桌上,否则直接放到桌上;重复前面步骤直至字符串被截为空。求最后桌上W的个数期望。 思路:定义dp[i]:以s[i]为首的后缀的W个数期望 则d
阅读全文
摘要:"Codeforces 940 E.Cashback " 题意:一组数,要分为若干个区间,每个区间长度为ki(1
阅读全文
摘要:为了熟悉树链剖分,又从洛谷上找了一道比较水的题 "松鼠的新家" 练手。 题目大意 一只熊要按规定路线在树上走,沿途每走到一个点,都要吃一块糖,问每个点最少需要事先准备多少个糖 思路 正解好像是树剖+树上差分,不过我发现树剖+线段树也能做,不过要记得扣除重复的计数以及最后到的点不计数。总之是树剖裸题
阅读全文
摘要:题意:有一张图,每条边有一个边权t表示经过所花时间,每个点有两个权t、p,分别表示经过该点所花时间和所花费用,要求找一条路径,从点1出发再回到点1,所花时间恰好为x且费用最小,输出其费用,找不到则输出“It is a trap.” 思路:这题的解法和之前一场网络赛碰到的L题异曲同工,那题的题意是有k
阅读全文
摘要:Problem G. Colors Overflow Input file: standard input Output file: standard output Balloon Color: Dark Green If there is one thing Ziad is good at, it
阅读全文
摘要:"Codeforces 785 D.Anton and School 2" 题目大意:从一串由“(”,“)”组成的字符串中,找出有多少个子序列满足:序列长度为偶数,且前n/2个为“(”,后n/2个为“)”; 思路:枚举每一个左括号,则以该左括号为左右分界的子序列个数为∑C(L 1,i)C(R,i+1
阅读全文
摘要:"Codeforces 785 E. Anton and Permutation" 题目大意:给出n,q。n代表有一个元素从1到n的数组(对应索引1~n),q表示有q个查询。每次查询给出两个数l,r,要求将索引为l,r的两个数交换位置,并给出交换后数组中的逆序对数。 思路:此题用到了分块的思想,即将
阅读全文
摘要:"Codeforces 981 D.Bookshelves" 题目大意: 给n个数,将这n个数分为k段,(n,k include include include include include include include include include include using namespa
阅读全文
摘要:"Codeforces 963 A. Alternating Sum" 题目大意:给出一组长度为n+1且元素为1或者 1的数组S(0~n),数组每k个元素为一周期,保证n+1可以被k整除。给a和b,求 对1e9+9取模的结果 思路:容易想到,每个周期的∑组成的数列成等比,公比q=(b/a)^k,因此
阅读全文
摘要:"Codeforces 979 D. Kuro and GCD and XOR and SUM" 题目大意:有两种操作:①给一个数v,加入数组a中②给出三个数x,k,s;从当前数组a中找出一个数u满足 u与x的gcd可以被k整除,u不大于s x,且与x的异或和最大。 思路:之前没有碰到过异或和最值的
阅读全文
摘要:"Codeforces 965 D. Single use Stones" 题目大意: 有一条河宽度为w,河上有一些石头,给出一组数(编号1~w 1),其中a[i]代表与河一岸距离为i的石头数量。每只青蛙的跳跃距离为l(l include include include using namespac
阅读全文
摘要:"Codeforces 731 F. Video Cards" 题目大意:给一组数,从中选一个数作lead,要求其他所有数减少为其倍数,再求和。问所求和的最大值。 思路:统计每个数字出现的个数,再做前缀和,用于之后快速求和。将原数组排序后去重,枚举每一个数做lead的情况下,其余数减少后再求和的结果
阅读全文
摘要:"CodeForces 369E Valera and Queries" 题目大意:给出n个线段(线段的左端点和右端点坐标)和m个查询,每个查询有cnt个点,要求给出有多少条线段包含至少其中一个点。 思路:如果按照题意正面去算有每个线段是否包含点,那么时间复杂度是不允许的;如果去算每个点被哪些线段包
阅读全文
摘要:"Codeforces 385C Bear and Prime Numbers" 其实不是多值得记录的一道题,通过快速打素数表,再做前缀和的预处理,使查询的复杂度变为O(1)。 但是,我在统计数组中元素出现个数时使用了map,以至于后面做前缀和的累加时,每次都要对map进行查询,以至于TLE。而自己
阅读全文
摘要:"Codeforces 437D The Child and Zoo" 题目大意: 有一张连通图,每个点有对应的值。定义从p点走向q点的其中一条路径的花费为途径点的最小值。定义f(p,q)为从点p走向点q的所有路径中的最大花费。累加每一对p,q的f(p,q),并求平均值。 乍一看以为是对图的搜索,但
阅读全文
摘要:"题目链接" 大意是判断所给字符串组中是否存在与查询串仅一字符之差的字符串。 关于字符串查询的题,可以用 "字典树(Trie树)" 来解,第一次接触,做个小记。在查询时按题目要求进行查询。 代码: C++ define _CRT_SECURE_NO_DEPRECATE include include
阅读全文
摘要:"题目链接" 非常简单的一道dp题,通过O(n)的预处理来使查询变为O(1)。 主要的坑在于取模后的dp数组的前缀和再相减可能得到负数,导致无法得到某一区间和的取模。 解决方法:(a b)%mo==(a%mo+mo b%mo)%mo,由于该等式的存在,可以使用取模后的前缀和做运算得到某一区间和的取模
阅读全文

浙公网安备 33010602011771号