05 2017 档案
摘要:"传送门" 题意 n个点的图,有n 1条无向边,m个询问,每次询问 给出两个集合a和b,找到a的一个元素x,b的一个元素y,使得x和y的lca深度最大 分析 这道题如果直接暴力做,复杂度为O(m k1 k2 n),爆掉 考虑二分lca的深度,那么进行如下处理,对于深度deep,如果两个集合(a存在元
阅读全文
摘要:"传送门" 分析 根据这张图,我们只要使得h include include include using namespace std; const double eps = 1e 7; const double pi = acos( 1.0); define ll long long define
阅读全文
摘要:"传送门" 题意 有n个小镇,Bobo想要建造n 1条边,并且如果在u到v建边,那么花费是u到v的最短路长度(原图),问你最大的花费。 分析 比赛的时候没做出来,QAQ 我们首先要找到树的直径起点和终点,方法是 1.任意选一个点,dfs找到最长路的终点 2.从终点反向dfs,找到起点 然后枚举每个点
阅读全文
摘要:"传送门" 题意 在一条直线上有n个教室,现在要设置糖果店,使得最后成本最小,满足以下两个条件: 1.若该点为糖果店,费用为cost[i]; 2.若不是,则为loc[i] 最近的糖果店的loc 分析 dp方程不好想,我们观察一下,如果在第i个点设置最后一个糖果店,那么它将影响到它之前的糖果店,那么第
阅读全文
摘要:"传送门" 题意 开始有一个空序列s,一个变量c=0,接着从左往右依次将数组a中的数字放入s的尾部,每放一个数字就检测一次混乱度K,当混乱度k大于M时就清空序列并让c=c+1,K = Bi Vi(1 using namespace std; define ll long long define F(
阅读全文
摘要:"传送门" 题意 从左到右有n个连续的组,每一组有Li个括号,要么全是左括号,要么全是右括号,以及该组的每一个左括号翻成右括号, 或者右括号翻成左括号的花费Di.可以对这n个组的括号进行翻转,每一个括号都可以选择翻或者不翻,使整个括号序列是一个合法括号序列。 分析 首先读入的时候将所有左括号变成右括
阅读全文
摘要:"传送门" 题意 将n个数划分为两块,最多改变一个数的位置, 问能否使两块和相等 分析 因为我们最多只能移动一个数x,那么要么将该数往前移动,要么往后移动,一开始处理不需要移动的情况 那么遍历sum[i] 如果往前移动,sum[k]+(sum[i] sum[i 1])=sum[n]/2,k∈[1,i
阅读全文
摘要:"传送门" 题意 给出n个体积为wi,价值为ci的物品,现在有一个m大的背包 问如何装使得最后背包内的物品价值最大,输出价值 分析 一般的思路是01背包,但n v不可做 题解的思路 We can iterate on the number of 3 elements we will take (in
阅读全文
摘要:"传送门" 题意 分析 这题用二分做就好啦,有点卡常数,改了几下for的次数 套了个板子,连最小生成树都忘记了QAQ trick 代码 include include include include using namespace std; const int Maxn=100100; const
阅读全文
摘要:"传送门" 题意 分析 简单的异或题。将每一个输入的数二进制分解,统计每位上1出现的个数,最后与x的为1的位比较 trick 1.如果输入的数ret|x x,那么不用考虑 代码 include include include using namespace std; int n,x,ans; int
阅读全文
摘要:"传送门" 题意 分析 考虑将区间按右端点排序,再遍历区间,操作即可 建议以加方式写 trick 1.不需要判区间重合 代码
阅读全文
摘要:"传送门" 分析 这道题做了好长时间,题意就很难理解。 我们注意到这句话 也就是说在最后的图中相同颜色的点构成一个连通图 也就是说如果1和2、3在不同的点共同出现,那么2和3一定不会在某个点共同出现。于是我们可以直接暴力dfs,在每个点对没有颜色的冰激凌贪心染最小的颜色。 需要注意有某种冰激凌没有出
阅读全文
摘要:"传送门" 题意 分析 dp[12][20][20][20]; // dp[a][b][c][d]第a个弓箭手面临第a 1、a、a+1个弓箭手的生命值分别为b、c、d的状态 转移巧妙,需注意 trick 代码
阅读全文
摘要:"传送门" 题意 分析 这是我在51nod上的第2题,下载了4个数据,得不偿失?我太菜啦 一开始wa了6个点,下数据后发现舰与舰不能相邻,再交wa,发现l和r都没设好,再wa,发现check里面[1,b[1]]的判断写错了QAQ 此题二分[1,m],每次将[1,mid]的数排序,计算可放舰的数量,与
阅读全文
摘要:"传送门" 题意 分析 只要从小到大二进制处理即可 我一直遍历了1 n,应该是0 1e6+1000 果然智障 trick 代码 include include include using namespace std; int a[1001001]; const int maxn=1e6+1000;
阅读全文
摘要:"传送门" 题意 n堆石子,每次可以取一堆至三堆任意非零石子数,取完者赢,问最后谁能赢 分析 以前我们做过NIM博弈是对一堆进行操作,现在换成了三堆,其实对于n堆都一样一堆的情况 如果最后二进制每位数的1的个数存在不为偶数,则胜,都为偶数,则败 三维的情况(类比) 如果最后二进制每位数的1的个数不为
阅读全文

浙公网安备 33010602011771号