摘要:
bzoj1754[Usaco2005 qua]Bull Math 题意: 求两个正整数的积,每个数≤40位。 题解: 为什么C++不能支持高精度呢…… 代码: 20160831 阅读全文
摘要:
bzoj1015[JSOI2008]星球大战starwar 题意: 给个无向图和一个删点序列。求每次删完一个点后(将该点所连所有边也删掉)剩余联通块个数。点数≤400000。 题解: 离线,先将所有点删掉,然后将剩余的边两端点合并入一个联通块,接着按删点序列倒序加点,将删掉的边加下去,把加入的边两端 阅读全文
摘要:
bzoj1116[POI2008]CLO 题意: n点m边双向图,问能否将一些边变成单向使得每个点只有一个入度。n≤100000,m≤200000。 题解: 结论:当图中每个点都与至少一个环相连时满足条件。故用并查集不断加边,如果两个顶点已在一个集合中,则将该集合根节点打标记,如果不在,若其中一个顶 阅读全文
摘要:
bzoj1370[Baltic2003]Gang团伙 题意: n个人,任何两个认识的人不是朋友就是敌人,而且满足: 1、 我朋友的朋友是我的朋友; 2、 我敌人的敌人是我的朋友; 所有是朋友的人组成一个团伙。告诉你关于这n个人的m条信息,即某两个人是朋友,或者某两个人是敌人,求这个城市最多可能有多少 阅读全文
摘要:
bzoj3791作业 题意: 对一个01序列进行染色,每次能将一个区间染上色(可覆盖之前染的),共能染k次,求最大正确染色个数。n≤100000,m≤50。 题解: 结论:染k次最多能把序列分成2*k-1段。故dp即可: f[i][j][0]=max(f[i+1][j+1][1]+a[i]==1,f 阅读全文
摘要:
bzoj2017[Usaco2009 Nov]硬币游戏 题意: 初始时,一个有N枚硬币的堆栈放在地上,每枚硬币都有一个价值。开始玩游戏时,第一个玩家可以从堆顶拿走一枚或两枚硬币。之后每一轮中,当前的玩家至少拿走一枚硬币,至多拿走对手上一次所拿硬币数量的两倍。当没有硬币可拿时,游戏结束。 两个玩家都希 阅读全文
摘要:
bzoj3714[PA2014]Kuglarz 题意: n个杯子排成一行,花费c_ij元,可以知道杯子i,i+1,…,j底下藏有球的总数的奇偶性。求问至少需要花费多少元才能保证猜出哪些杯子底下藏着球。 题解: 令杯子1..i的和为sum[i],那么当知道sum[i]和sum[i-1]即可推算出i下是 阅读全文
摘要:
bzoj2096[Poi2010]Pilots 题意: 给一个序列和一个最大值,要求找一个最长连续子串,使里面任意两个数相差不超过这个最大值。序列大小≤3000000 题解: 用两个单调队列,分别维护当前区间的最大值和最小值,然后用双指针法。 代码: 20160829 阅读全文
摘要:
bzoj2348[Baltic 2011]Plagiarism 题意: n个数,如果其中两个数fi≤fj且fi≥0.9*fj,则它们要被比较。求多少对数要被比较。n≤100000。 题解: 排序然后双指针法。 代码: 20160829 阅读全文
摘要:
bzoj3401[Usaco2009 Mar]Look Up 仰望 题意: 约翰的N头奶牛站成一排,奶牛i的身高是Hi。对于奶牛i,如果奶牛j满足i<j且Hi<Hj,我们可以说奶牛i可以仰望奶牛j。求出每只奶牛离她最近的仰望对象。n≤100000. 题解: 用一个单调栈维护即可。 代码: 20160 阅读全文
摘要:
bzoj2021[Usaco2010 Jan]Cheese Towers 题意: John要建一个奶酪塔,高度最大为T。他有N种奶酪,每种无限个,第i种高度为Hi(一定是5的倍数),价值为Vi。一块高度>=K的奶酪被称为大奶酪,一个奶酪如果在它上方有大奶酪(多块只算一次),它的高度就会变成原来的4/ 阅读全文
摘要:
bzoj3767A+B Problem加强版 题意: 求两个数的和,每个数绝对值≤10^(10^7)。 题解: 又用Python水过了…… 代码: 20160828 阅读全文