随笔分类 - 其他——构造
摘要:Problem - E2 - Codeforces 题意: 给出一个长为n的字符串,你可以进行2种操作 1、把串在后面再拼接一次 2、删去串的最后一个元素 要求用这两种操作得出字典序最小的长为m的串 首先答案肯定是由一个前缀拼接多次构成 假设当前的最优前缀是A前缀,长度为LA,现在正在考虑的是B前缀
阅读全文
摘要:Problem - 1492D - Codeforces 题意: 给出a b k,构造两个二进制数x和y(x>=y,不能有前导0),使x-y的二进制有k个1 1XXX0 0XXX1 手算可以发现,若x有一段以1开头以0结尾,长为L的区间,对应的y这一段为以0开头以1结尾,中间的x和y都一样 那么这一
阅读全文
摘要:Problem - 1567D - Codeforces 题意: 给出s和n 请构造n个十进制正整数,满足他们在十进制下的和等于s,且在十一进制下的和最大 如果n<=s的数位和,那么只要不把一个高位拆成10个低一位,在十一进制下的和都是一样的 这给我们的启示是尽可能不要拆高位,当因为正数限制不得不拆
阅读全文
摘要:Problem - 23B - Codeforces 题意: n个人参加聚会,他们中的某些人是朋友 首先朋友数为0的人会离开聚会 然后剩余朋友数为1的人(这1个人在之前还没有离开聚会)会离开聚会 然后剩余朋友数为2的人(这2个人在之前还没有离开聚会)会离开聚会 …… 最后剩余朋友数为n-1的人(这n
阅读全文
摘要:Problem - 1552D - Codeforces 题意: 给出一个有n个数的数组a,能否构造出一个长为n的数组b,使a中的每个数都可以由b中某两个数相减得到。 令b[1]等于任意值,b[i]=a[i-1]+b[1],这样可以很容易的使a中的n-1个数满足要求 剩下一个数比较难搞 若b[x]-
阅读全文
摘要:Problem - 1543D1 - Codeforces 题意: 有一个初始密码,在[0,n-1]范围内,你要猜密码 设当前密码为x,你猜的密码为y,如果没有猜对,密码会更改为x异或y 至多可以猜n次,要求猜出密码(更改后的) 交互,猜对返回1。猜错返回0。 第一次猜0,第二次猜1异或0,第三次猜
阅读全文
摘要:https://codeforces.com/problemset/problem/1558/C 题意: 给出一个长为n(奇数)的排列,要求通过翻转奇数前缀的方式,使排列升序 至多可以做 n*5/2 次翻转 n为奇数,翻转不会改变数字所在位置的奇偶性 所以有解的前提是值为奇数的数在奇数位置,偶数在偶
阅读全文
摘要:题意: 有两个怪兽a和b,血量分别为hpa hpb,攻击力分别为atka atkb 有一个英雄,在第i秒的攻击力为i 每一秒,英雄先受到活着的怪兽攻击力之和的伤害 然后选择一个怪兽攻击 问英雄最少受到多少伤害后才能打死两只怪兽 并输出字典序最小的攻击方案 受到伤害最少的方案一定是先以打死其中一只怪兽
阅读全文
摘要:https://ac.nowcoder.com/acm/contest/3004/B 利用二进制进行构造 假设一个方形迷宫,主对角线都是B,B上面一个位置是D,其余位置都是R 那么到第i行第i列的方案数就是2^i 所以方案数的二进制形式,如果第i位是1,那就需要第i行第i列这一格的贡献 将这一格下面
阅读全文
摘要:#include #include #include using namespace std; #define N 201 pairp[N]; char s[N]; int ans[N],cnt; bool vis[N]; int start; int tmp[N]; void read(int &x) { x=0; char c=getchar(); whil...
阅读全文
摘要:http://codeforces.com/contest/950/problem/D 前n/2个格子的奇数下标的数没有参与移动 候n/2个格子的奇数下标的数一定是一路移向偶数下标移 所以还原数的初始位置时,让数沿原来的路线向右移动,到达的第一个奇数下标就是这个数的初始位置 在初始位置a的数是(a+
阅读全文
摘要:http://codeforces.com/contest/950/problem/C 题意: 给出一个01序列,问能否将这个序列分为若干个0开头0结尾的序列 输出方案 如果有解,几个1能在一个序列就在一个序列 一定可以找到解 因为0可以单独1个序列,1必须要依托于0 2个1如果分开 要4个0,连起
阅读全文
摘要:http://codeforces.com/contest/923/problem/D 题意: A-->BC , B-->AC , C-->AB , AAA-->empty 问指定串S是否能变成目标串T 发现1:B与C等价 B-->AC-->AAB-->AAAC-->C C-->AB-->AAC--
阅读全文
摘要:http://codeforces.com/problemset/problem/931/C 题意: 给定一个数列,要求构造一个等长的数列,使得数列的平均值等于给定数列,并且使得构造出的数列中与原数列相同的数字个数最小,输出最小相同数字个数与构造的数列。数列长度不超过100000,给定数列中最大的数
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=5100 1、找到d1[i]+dn[i] 最小的点,作为1到n链上的点 2、令链长为D,若abs(d1[i]-dn[i])==D,则 i 与1或n 连边 3、对于链上除去1和n的点k,若 dn[i]-d1
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5385 题意: 给定一张n个点m条有向边的图,构造每条边的边权(边权为正整数),令d(x)表示1到x的最短路,使得存在点i(1<=i<=n)满足d(1)<d(2)<…<d(i)>d(i+1)>…>d(n)。 从两边
阅读全文
摘要:http://codeforces.com/contest/896/problem/B 题意: 交互题 n张卡片填m个1到c之间的数,1<=n*ceil(c/2)<=m 最后填出一个单调非降序列,输出每次填的位置 <=c/2: 从左开始扫描,遇到空位 或 比原数更优(<原数)就放 >c/2: 从右开
阅读全文