随笔分类 - codeforces/Gym
摘要:题意:给你一个长度为n的数组,每个元素都在1~n之间,要你改变最少的元素,使得它变成一个1~n的排列。在保证改动最少的基础上,要求字典序最小。 预处理cnt数组,cnt[i]代表i在原序列中出现的次数。b数组,代表没有出现过的数是哪些。b数组的长度就是答案。 b数组是从小到大排好的,然后for循环b
阅读全文
摘要:题意:交互题:存在一个至少有一个0和一个1的长度为n的二进制串,你可以进行最多15次询问,每次给出一个长度为n的二进制串,系统返回你此串和原串的海明距离(两串不同的位数)。最后要你找到任意一个0的位置和任意一个1的位置。 先问n个0,返回你的原串中是1的数量,记为X。然后将任意一位改成1,倘若答案增
阅读全文
摘要:题意:给你n,x,均不超过10^5,让你构造一个无重复元素的n个元素的非负整数集合(每个元素不超过10^6),使得它们的Xor和恰好为x。 如果x不为0: 随便在x里面找一个非零位,然后固定该位为0,其他位随意填写,恰好弄出n-1个数来,然后对这n-1个数求xor和,记作sum,再输出x xor s
阅读全文
摘要:题意:有一堆数据,某些是样例数据(假设X个),某些是大数据(假设Y个),但这些数据文件的命名非常混乱。要你给它们一个一个地重命名,保证任意时刻没有重名文件的前提之下,使得样例数据命名为1~X,大数据命名为X+1~X+Y。 先把未使用的名字压进两个栈。 分为三轮:第一轮把占用了对方名字的样例数据以及占
阅读全文
摘要:题意:给你n个数,一次操作可以选一个数delete,代价为x;或者选一个数+1,代价y。你可以进行这两种操作任意次,让你在最小的代价下,使得所有数的GCD不为1(如果全删光也视作合法)。 我们从1到max(ai)枚举最后都变成的gcd是多少,假设为g,那么所有数都必须变成一个比g大的最小的g的倍数k
阅读全文
摘要:题意:给你五维空间内n个点,问你有多少个点不是坏点。 坏点定义:如果对于某个点A,存在点B,C,使得角BAC为锐角,那么A是坏点。 结论:如果n维空间内已经存在2*n+1个点,那么再往里面添加任意多个点,就会导致所有点都变成坏点。 容易看出来(?),把2*n+1个点分别放在原点处和每个坐标轴的正负半
阅读全文
摘要:题意:给你平面上3个不同的点A,B,C,问你能否通过找到一个旋转中心,使得平面绕该点旋转任意角度后,A到原先B的位置,B到原先C的位置。 只要A,B,C构成等腰三角形,且B为上顶点。那么其外接圆圆心即是一个合法的旋转中心。画个图很显然。 注意A,B,C三点共线时不可。
阅读全文
摘要:给你一个这样的图,那些点是舞者,他们每个人会在原地待ti时间之后,以每秒1m的速度向前移动,到边界以后停止。只不过有时候会碰撞,碰撞之后的转向是这样哒: 让你输出每个人的停止位置坐标。 ①将x轴上初始坐标记为(pi,0),y轴上的初始坐标记为(0,pi)。只有pi-ti相同的才有可能发生碰撞。于是可
阅读全文
摘要:题意:让你构造一个只包含小写字母的可重集,每次可以取两个元素,将它们合并,合并的代价是这两个元素各自的从‘a’到‘z’出现的次数之积的和。 给你K,你构造的可重集必须满足将所有元素合而为一以后,所消耗的最小代价恰好为K。 考虑只包含一种类字母的消耗代价,以a为例: a 0 aa 1 aaa 3 aa
阅读全文
摘要:题意:给你一张图,给你每个点的权值,要么是-1,要么是1,要么是0。如果是-1就不用管,否则就要删除图中的某些边,使得该点的度数 mod 2等于该点的权值。让你输出一个留边的方案。 首先如果图内有-1,那么必有解。否则如果初始不合法的点数为偶数,那么必有解,否则无解。因为删一条边,要么使图中不合法的
阅读全文
摘要:给你10个箱子,有长宽高,每个箱子你可以决定哪个面朝上摆。把它们摞在一起,边必须平行,上面的不能突出来,问你最多摆几个箱子。 3^10枚举箱子用哪个面。然后按长为第一关键字,宽为第二关键字,从大到小排序。 如果前面的宽大于等于后面的宽,就连接一条边。 形成一张DAG,拓扑排序后跑最长路即可。
阅读全文
摘要:给你一个序列,让你对于所有gcd不为1的子序列,计算它们的gcd*其元素个数之和。 设sum(i)为i的倍数的数的个数,可以通过容斥算出来。 具体看这个吧:http://blog.csdn.net/jaihk662/article/details/77161436。 注意1*C(n,1)+2*C(n
阅读全文
摘要:存个求树上每种长度(长度定义为路径上点数)的路径条数的模板:num数组中除了长度为1的以外,都算了2次。 不造为啥FFT数组要开八倍。
阅读全文
摘要:平面上n个红点,m个黑点,问你多少个黑点至少在一个红三角形内。 对红点求凸包后,转化为询问有多少个黑点在凸包内。 点在凸多边形内部判定,选定一个凸包上的点作原点,对凸包三角剖分,将其他的点极角排序之后,使用二分法就可以判定点在哪个剖分出来的三角形的夹角内,然后用叉积即可判定其在凸包内还是外,O(lo
阅读全文
摘要:http://blog.csdn.net/lxy767087094/article/details/68942422
阅读全文
摘要:一些画布,每块有其大小,一开始都是白的,你任意将它们排序,然后一次操作可以选择一段连续的相同颜色的画布,从中任选一个位置,左侧涂上任意一种颜色,右侧涂上另一种。消耗是这一段画布的总的大小。问你要将所有画布着上不同的颜色的最小花费。 从后向前考虑,其实相当于是将一些一开始不同的画布两两合并,代价是两者
阅读全文
摘要:有26张牌(A~Z),其中三张被拿走了。其余23张被分发给了两个人。给你m次调查结果,一次调查结果是对其中一个人询问一对牌,他会告诉你他有这对牌的几张(0~2)。问你有多少种被拿走的牌的组合。 三重循环枚举被拿走的牌。 然后对于一次调查,我们发现可能的十二种情况中({这两张牌都被拿走,都不被,其中一
阅读全文
摘要:给你一张DAG,若选择u点,则必须先选择所有能到达其的点。问你在选择A个点的情况下,哪些点必选;选择B个点的情况下,哪些点必选;选择B个点的情况下,哪些点一定不选。 选择A个点的情况,必选的点是那些其所能到达的点数>n-A的点。 选B个点,必选的点与前者类似。 一定不选的点,是能到达它的点数>B的点
阅读全文
摘要:给你n个数,让你任选K个,使得它们乘起来以后结尾的0最多。 将每个数的因子2和因子5的数量求出来,记作a[i]和b[i]。 答案就是max{ min{Σa[i],Σb[i]} }(a[i],b[i]是选择的那些数)。 暴力dp是f(i,j,k)表示前i个数,选j个,其中包含k个5的情况下,最多能包含
阅读全文
摘要:给你一个序列,让你划分成K段,每段的价值是其内部权值的种类数,让你最大化所有段的价值之和。 裸dp f(i,j)=max{f(k,j-1)+w(k+1,i)}(0<=k<i) 先枚举j,然后枚举i的时候,用线段树进行优化,对a(i)上一次出现的位置到i之间的f(k,j-1)的答案进行+1,然后求个i
阅读全文

浙公网安备 33010602011771号
