构造
文章平均质量分 67
HouseFangFZC
oo
展开
-
CodeForces 379D New Year Letter
题意:构造 s1 和 s2 两个字符串使他们满足要求:1. s1 长度 n s2 长度 m2.如果按照 s[i] = s[i-2] + s[i-1] 的方法构造字符串(“+”就是 strcat ) 那么 s[k] 中必须正好出现 x 次字符串 “AC”如果能构造出来就输出 s1 和s2 如果不能就输出 新年快乐思路:由于 “AC” 字符串只有两个字符 所原创 2014-01-04 15:52:05 · 946 阅读 · 0 评论 -
ZOJ 3810 A Volcanic Island
题意:n*n的格子 将它分成n份大小为n的连通块 要求每个块形状不同 用4种颜色将格子染色后输出思路:纯构造题 考验智商 不过还是有思路可寻的首先这题要想到将格子分区域的去做(想不到就没办法了…)假设我们两行为一个区域 那么将这两行划分成两个面积为n的块之后发现它们的形状必然相同 因此两行不行 所以我们尝试3行为1个区域!! 可以构造:这样构造就可以保证形原创 2014-09-09 13:33:20 · 1724 阅读 · 0 评论 -
CodeForces 405D Toy Sum
题意:从1到10^6的数字 X子集合有其中n个数 每个数的值为 如果这个数思路:可以想到对称的去找数字 如果一个数字没和与它对称的数字同时出现在X中 则Y中就放与它对称的数字如果同时出现 我们可以证明 只需要找与它们值的和相同的一对同时不出现在X中的数字就可以证明很简单 如果X中m个不成对出现 除去它们和与它们对称的数字还剩下amount - 2*m个原创 2014-03-25 21:57:13 · 932 阅读 · 0 评论 -
CodeForces 395B iwiwi
题意:构造n长度的由w和i组成的串 要求相邻串一步变化得到思路:神奇的构造 队友说多些几组就看出规律了- -b 我不适合乱搞…代码:#include#include#include#include#include#includeusing namespace std;int n;vector x,y,tmp;int main(){原创 2014-02-16 16:18:14 · 818 阅读 · 0 评论 -
CodeForces 388B Fox and Minimal path
做了4天ICM 感觉脑子都坏掉了… CF落下了2场的题 赶紧追 >.题意:最多用1000个点 画出一幅图 要求满足1节点到2节点的最短路条数为k 输出这幅图的邻接矩阵思路:一看k的值10^9 果断开始构造最短路的走法 直觉告诉我们要采用类似BFS的方式(一层一层的加点 这样满足构造出的路径等长)我首先想的是利用素数去构造 因为素数能构造出合数原创 2014-02-12 15:21:56 · 1185 阅读 · 0 评论 -
CodeForces 375A Divisible by Seven
题意:一堆数字一定包含1、6、8、9 可以任意调整顺序 最后排成的数字要求被7整除思路:1、6、8、9一定有古怪… 所以假设它们就是后四位 前面所有位%7剩下的数字无非0~6 写程序打表发现很神奇的现象 对于每种余数总有一个排列可以让它被7整除注意处理0 反正都能整除就记录0的个数然后写在最后代码:#include#include#i原创 2014-02-22 19:03:53 · 990 阅读 · 0 评论 -
USACO Section 3.2 Stringsobits
题意:N位二进制数1的个数不超过L个 求 第i个数是多少思路:一开始以为是用二进制暴力就行 事实证明我是213 - -b这题就应该去构造 但是简单的用dfs构造然后计数还是会TLE 因此想到去组合假如现在想求第k位是0还是1 可用的所有的1全在1~k-1位的种类数为x 如果x如此就可以先dp打一个杨辉三角的组合数表 然后根据不同位置形成的种类数判断0原创 2014-01-29 17:51:25 · 722 阅读 · 0 评论 -
USACO Section 1.5 Prime Palindromes
题意:输入a和b 求 a和b之间所有既是素数同时又有回文性质的数 从小到大输出思路:如果枚举a到b之间所有的数再判断素数和回文那么复杂度会比O(n)还大 本题O(n)都会跪因此思路转到能否 先得到所有素数再判断回文 或者 先得到所有回文的数在判断素数本题我的做法是后者 说下原因本题b最大为10^8 因此构造回文的数字可以枚举1~10000中的数字再对数字翻原创 2014-01-19 14:07:07 · 738 阅读 · 0 评论 -
USACO Section 3.1 Humble Numbers
题意:已知一个集合S 由S的任意子集作为因子 可构造出一个数字 求 这些构造出的数字中第k大的数字是多少思路:拿到这题就被“数字不是很多而且比较连续暴力枚举就好”这个思路迷惑了 果断TLE…跪了一次后想到通过bfs构造可取 这时用了queue维护bfs 用priority_queue维护答案(大顶堆 内部最多k个数字) 用set判重复(5*2=2*5)原创 2014-01-25 12:06:13 · 665 阅读 · 0 评论 -
CodeForces 484A Bits
题意:10000个询问 每个询问输入L和R(10^18) 输出在区间内二进制表示下1最多的数字 如果1个数相同输出最小的思路:YY一下 觉得后几位全是1的时候能保证1的个数多 那么如何构造出这个数字呢??将L和R都变成二进制 从高位到低位 L和R相同的那几位一定是不变的 因为要保证构造出的数字在区间内 然后分两种情况一是L和R一直相同 那就没什么好说的了原创 2014-11-19 19:24:31 · 873 阅读 · 0 评论