构造
文章平均质量分 90
ProLightsfxjh
这个作者很懒,什么都没留下…
展开
-
UESTC 1263 The Desire of Asuna 贪心法&&构造法
首先,如果都很大1,则n-1次。如果一个1则可以减少1次,但如果有一个2,则拆开后如果都可以用上,则也可以减少一次,其它的也是这样。那么凑出足够的1,来连接链,即可。○ 1 ○ 1 ○ 1 ○ 1 ○ 1 ○ 1 ○ 且最后结束的时候必然是这样还剩余的链刚好被那些1连接。贪心策略:先排序,从最小的开始搞,取环凑1。(每取出or凑出一个1消耗一个代价)如果a[i]==0,则i++,len--(剩余的链数--);//最后恰好剩余的链中,最前面的那个链是1也不要紧,它还是作为一个链○处理如果a[i]!=原创 2015-12-17 13:39:45 · 1071 阅读 · 0 评论 -
XVII Open Cup named after E.V. Pankratiev. Eastern Grand Prix. Problem F. Buddy Numbers 贪心、数论、构造
题意:给出一个n,问能不能把1~n这n个数排出一个序列,使得任意相邻的两个数,一个数是另一个数的因数。贪心、数论、构造1 12 2 13 3 1 24 3 1 2 4然后5的时候,也就是当1~n里素数的个数大于2的时候就不好办了,此外这里n == 6的时候还是可以构造出来了, 3 6 2 4 1 5.所以对于n == 1、2、3、4、6的时候是有答案的,直接输出即可,其它的时候都构造不出来,为-1。原创 2017-12-08 14:02:36 · 1059 阅读 · 0 评论 -
UESTC 1607 大学生足球联赛 构造、蛇形安排赛程表
构造法:蛇形安排赛程表将1-N排成两竖列,每一轮同一行的为对手保持1的位置不变,其他位置按顺(逆)时方向依次旋转1 6 1 2 1 3 1 4 1 5 2 5 3 6 4 2 5 3 6 4 3 4 4 5 5 6原创 2017-06-11 16:47:18 · 1383 阅读 · 0 评论 -
UESTC 1633 去年春恨却来时,落花人独立,微雨燕双飞 Dijkstra+构造
给出一个大小为n的集合S,集合里有n个互不相同正整数.有q个询问,每次询问是否能选择S中的一些数字 ( 同一个数字可以选择多次,也可以任何数字都不选),使它们相加的和为m.Dijkstra+构造对于S集合中的数,例如a1,考虑到如果x能够被表示出来,那么x+a1也一定能被表示出来。故设d[r]为所有模a1余r的数中,能被表示出来的最小的数。故可以表示出一个a1个节点a1*n条边的有向图。d[0] = 0,丢入priority_queue<ii, vector<ii>, greater<ii>>原创 2017-05-28 15:10:59 · 1678 阅读 · 0 评论 -
Codeforces Round #400 (Div. 1 + Div. 2, combined) C. Molly's Chemicals 区间和、构造、前缀的后缀
题意:给出n个数字,要求选出一段连续的数字,使它的和为k的非负整数次方,为这样的区间有多少个。区间和、构造、前缀的后缀这是一个很有趣的构造题,一个连续区间[a, b],转化为 [1, b] - [1,a-1],如果差值,满足要求则这样的区间存在,然后换过来,对于每个k^j,对于 [1,b] - k^j == [1,ax-1],有多少个前缀和sum{[1,ax-1]}就有多少个多少个区间[ax, b] == k^j次。这里可以借助map来记录 前缀和sum{[1,ax-1]} 出现的次数。此外要处理原创 2017-03-22 01:11:31 · 708 阅读 · 0 评论 -
Codeforces Round #397 (Div. 1 + Div. 2 combined) D. Artsem and Saunders 映射+构造
题意:给出一个函数f(x) 属于[1,x],然后要求确定一个数m,使x属于[1,n],g[x]属于[1,m], x输入[1,m] h[x]属于[1,n], 当存在m时,求m最小时的gx和hx。映射+构造先把fx离散化化,然后通过离散化的结果,和h(g(x)) = f(x) for all , 求出gi 和 hi,最后用g(h(x)) = x for all 来检查gi和hi,如果可以则输出,否则-1.其中可以证明 fi 离散化成任意[1,m]都不影响结果,只要保证不同的数离散化成不同的数,相同的数原创 2017-02-14 19:43:57 · 909 阅读 · 0 评论 -
Codeforces Round #381 (Div. 2) C. Alyona and mex 贪心+构造
题意:给出一系列的区间,每个区间有一个mex值(区间内最小的没有出现过的值),然后要求min{mex} 尽可能的大。构造出这个序列贪心+构造根据题意可知,影响答案的是最小的那个区间的mex,比如最小的区间是 3 6则 0 1 2 3 ,mex = 4;比这个大的区间没有影响,填上 0 1 2 3 不断循环即可,可以直接用2个变量 l、r 维护即可找出这个区间(下面代码用的是小根堆,是本来用另外的做法做的,改的时候就不把O(nlogn)改成O(n)求得最小区间了)ans = r - l + 1;原创 2016-11-27 16:57:52 · 795 阅读 · 0 评论 -
Codeforces Round #380 (Div. 2) D. Sea Battle 贪心+构造
题意:给定了一些区间,选一些区间里的点,要求至少有一个点在其中可能存在的一条线段上。贪心+构造首先处理出那些能够放下长为b的线段的区间,并用sum记录好,这些区间最多可以放多少个长为b的线段。然后由于已知有a个线段分布在这些区间里,所以 可以选 res = sum - a + 1个点,来命中至少一个线段。que.front().first += b 就是选入的第一个点,然后每次如果还放得下一个线段则在间隔为b的下一个点选入故选这res个点即可至少命中一条线段。复杂度 O(n)原创 2016-11-20 21:45:47 · 837 阅读 · 0 评论 -
Codeforces Round #378 (Div. 2) C. Epidemic in Monstropolis 贪心+构造
题意:n个数构成的序列a,大的数可以合并掉小的数从而总数减1,然后给出一个由k个数构成的新序列b,问能否通过a中·部分大数逐步合并相邻相对较小的数 而得到b 贪心+构造对于每一个bi,从a[ l ] 向右扫, 找出一个区间 sum{a[l.....r]} == bi,(l < r) //没有出现==,而直接出现了 > bi,则直接ans = false; break;然后这个区间 a[l......r] 就会大的数合并相邻的小的数,最终得到bi //贪心策略是找到该期间最大的可以合并原创 2016-11-13 23:51:24 · 861 阅读 · 0 评论 -
AIM Tech Round 3 (Div. 2) D. Recover the String 构造、贪心、多坑、WA162
构造、贪心、多坑、WA162首先用杨辉三角求组合数打个表, 然后匹配一下找出 cnt11, cnt00,也就是1、0的个数 //这个做法比较暴力了嘿嘿 -_-||然后如果 (a01 + a10 != cnt00*cnt11) 则没有答案否则 初始是 000000111111这样的然后每次if(a10 >= lef0) ......这样就是优先搞出大的10, 因为这个时候后面的0比较多 第一次 a10 >= lef0 就把 一个1提到最前面 a10 -= lef0, 否则是0 lef0--, 然原创 2016-08-26 23:59:49 · 1356 阅读 · 1 评论 -
The 14th UESTC Programming Contest Final Warmup D - Cube
As a student of the applied mathematics school of UESTC, WCM likes mathematics. Some day he found an interesting theorem that every positive integer's cube can be expressed as the sum of some continuous odd positive integers. For example,Facing such a pe原创 2016-04-03 12:31:40 · 1960 阅读 · 0 评论 -
UESTC 1040 Great Inversion 逆序数、构造
There is an array A with length of n. Ai(1≤Ai≤m) is the ith element in A. Please find a possible situation of A so that the inversion number is exactly K.原创 2016-03-20 21:34:12 · 1570 阅读 · 0 评论 -
UESTC 1050 Different game 构造法
Alice is playing a new game recently. In this game, there are n different kinds of cards. We assume that Alice have ci pieces of cards for ith kind.Alice is asked to divide them into mm piles and then arrange each pile in one line. After that, Alice will原创 2016-03-31 20:32:08 · 1555 阅读 · 0 评论 -
Codeforces Round #456 (Div. 2) B. New Year's Eve 贪心、构造、位运算、异或和
题意:给出1~n这n个数,最多选k个数,要求,选出的数的异或和最大,求这个异或和。贪心、构造、位运算、异或和首先对于n的二进制有b位,n ^ ((1<<b) - 1)的值必定小于n。所以如果k为1,则只能选ans = n;否则选n和n ^ ((1<<b) - 1)这2个数,当n和 ((1<<b) - 1)相等时依然选n,即 ans = (1<<b) - 1。原创 2018-01-13 17:56:13 · 591 阅读 · 0 评论