草庐IT

Codeforces 1672 E. notepad.exe

题意这是一道交互题,有n个字符串,每个字符串长度:0-2000,n:0-2000有一个机器对他进行排版,你可以给他一个每行的最大宽度w,那么每行只能放长度为w的字符;每行相邻两个字符串之间至少有一个空格,每行结尾可以不用,机器会按照贪心原则进行排版,保证排版后的高度尽量小。你可以进行n+30次询问,每次询问你可以给个w,他会给你排版后高度h,让你求出w*h的最小值。做题吐槽这题很典型的构造题,不会就是不会,会了一下子就会做了,这种题感觉就是要一下子找到题目的突破点,挖掘出这类题目的特征,感觉自己还是菜,每个突破点想到了,但是没串连起来,继续加油!提示1.答案的范围变化是很小的,变化范围只有0-

Codeforces 1674 E. Breaking the Wall

题意给n个数的数列a[n],可以进行任意次操作,每次选取一个位置i,a[i]-=2,a[i-1]-=1,a[i+1]-=1,问最少几次操作可以让任意两个值提示需要进行分类讨论,分成三种情况讨论1.两个数是相邻的,那么则需要解方程,x,y代表两点分别进行多少次2.两个数间隔一位的话,那么需要解方程,x,y代表两点分别进行多少次,z代表中间点需要多少次3.任意两点,直接排序取两个最小值ceil(x/2)即可这道题比较简单,看完题目以后解题思路就比较明显了,比赛的提交很多人被hack了,估计是一些边界值考虑出错导致的,代码实现也比较简单代码#includeusingnamespacestd;inta

Codeforces 1672 E. notepad.exe

题意这是一道交互题,有n个字符串,每个字符串长度:0-2000,n:0-2000有一个机器对他进行排版,你可以给他一个每行的最大宽度w,那么每行只能放长度为w的字符;每行相邻两个字符串之间至少有一个空格,每行结尾可以不用,机器会按照贪心原则进行排版,保证排版后的高度尽量小。你可以进行n+30次询问,每次询问你可以给个w,他会给你排版后高度h,让你求出w*h的最小值。做题吐槽这题很典型的构造题,不会就是不会,会了一下子就会做了,这种题感觉就是要一下子找到题目的突破点,挖掘出这类题目的特征,感觉自己还是菜,每个突破点想到了,但是没串连起来,继续加油!提示1.答案的范围变化是很小的,变化范围只有0-

Codeforces 1674 E. Breaking the Wall

题意给n个数的数列a[n],可以进行任意次操作,每次选取一个位置i,a[i]-=2,a[i-1]-=1,a[i+1]-=1,问最少几次操作可以让任意两个值提示需要进行分类讨论,分成三种情况讨论1.两个数是相邻的,那么则需要解方程,x,y代表两点分别进行多少次2.两个数间隔一位的话,那么需要解方程,x,y代表两点分别进行多少次,z代表中间点需要多少次3.任意两点,直接排序取两个最小值ceil(x/2)即可这道题比较简单,看完题目以后解题思路就比较明显了,比赛的提交很多人被hack了,估计是一些边界值考虑出错导致的,代码实现也比较简单代码#includeusingnamespacestd;inta

Codeforces 1670 E. Hemose on the Tree

题意给你个数p,n=2^p;有一棵树有n个节点,告诉你怎么连边;每个点有个权值,每条边也有个权值,权值需要自行分配,[1,2,3..n...2n-1],总共2n-1个权值;你需要选一个节点,使得他到所有其他边或者节点的简单路径的异或最大值最小。思路显然,给你个p,不直接给你n一定是有潜藏的东西的,分析一下,n=2^p,那么n的结构一定是1000000,1后面都是0,那可以推测出最终的答案一定是小于等于n的1.初始节点可以随便选的,但是它的值一定设为n2.处于一个点的连接点与边来说,他们的关系一定是x,x+n,这样他们的异或值一定是n,可以保证答案在0-n之间改变,注意x与x+n的位置设置3.如

Codeforces 1670 E. Hemose on the Tree

题意给你个数p,n=2^p;有一棵树有n个节点,告诉你怎么连边;每个点有个权值,每条边也有个权值,权值需要自行分配,[1,2,3..n...2n-1],总共2n-1个权值;你需要选一个节点,使得他到所有其他边或者节点的简单路径的异或最大值最小。思路显然,给你个p,不直接给你n一定是有潜藏的东西的,分析一下,n=2^p,那么n的结构一定是1000000,1后面都是0,那可以推测出最终的答案一定是小于等于n的1.初始节点可以随便选的,但是它的值一定设为n2.处于一个点的连接点与边来说,他们的关系一定是x,x+n,这样他们的异或值一定是n,可以保证答案在0-n之间改变,注意x与x+n的位置设置3.如