构造
文章平均质量分 82
围巾的ACM
啊啊什么时候也能成为一个大牛啊
展开
-
CodeForces 673D Bear and Two Paths(构造)
思路:构造,显然是一个蝴蝶形状的图 #include using namespace std; int main() { int n,k,a,b,c,d; vectorg; scanf("%d%d",&n,&k); scanf("%d%d%d%d",&a,&b,&c,&d); if(n==4) { puts("-1"); return 0; } if (k<=n原创 2016-05-10 19:42:43 · 1147 阅读 · 0 评论 -
CodeForces 622D Optimal Number Permutation(构造)
题意:构造题,让构造一个1-n中每个数出现两次的一个序列,使得这个序列的权值和最小,权值 = (n-i)(di+i-n),di是指第i个数出现两次的距离思路:如果让di = n-i,这样权值和就是0了,分奇数偶数去摆放,这样就可以错开了,就不会重叠在一起,因为n这个数可以使得(n-i)=0,所以就用它来调整这个序列#include<bits/stdc++.h> using namespace std原创 2016-04-15 21:53:26 · 434 阅读 · 0 评论 -
CodeForces 312C The Closest Pair(构造)
题意:给你一个程序,要求让你出一组数据,使得这组数据会让程序的tot超过k 思路:很显然我们可以发现,他只是比较了x之间的距离,那么我们可以构造出所有点的x都相同,y都不相同的数据就好了,这样任意两个点的距离一定是大于任意两个点的x坐标之差的 #include using namespace std; #define LL long long int main() { LL n,k;原创 2016-05-12 20:31:49 · 561 阅读 · 0 评论 -
FZU 2140 Forever 0.5
思路:队友做的..听说是迷之画一个圆和个三角形...确定四个点其他就随便了 #include #include #include #include #include #include #include #include #include #include #include #include #define ex 1e-9 using namespace std;原创 2016-04-19 22:02:46 · 383 阅读 · 0 评论 -
Codeforces Round #272 (Div. 2) D Dreamoon and Sets(构造)
思路:需要手玩一会.... #include using namespace std; int main() { int n,k; scanf("%d%d",&n,&k); printf("%d\n",(n-1)*k*6+5*k); for(int i=0;i<n;i++) printf("%d %d %d %d\n",i*k*6+k,i原创 2016-08-27 13:50:09 · 468 阅读 · 0 评论 -
hdu5813 Elegant Construction(构造)
思路:将顶点按能到达的点数从小到大排序,排好序之后每个点只能往前面的点连边. 因而如果存在一个排在第i位的点,要求到达的点数大于i-1,则不可行;否则就可以按照上述方法构造出图. 复杂度O(N^2). #include using namespace std; const int maxn = 1000 + 10; int G[maxn][maxn]; struct Node {原创 2016-08-10 00:21:56 · 283 阅读 · 0 评论 -
HDU 5491 The Next(构造)
题意:给你D(D 思路:直接从D+1算起,如果1的数目>s2那就跳过,如果s1>sum1,那么就将这个数的低位s1-sum1个0补成1,那么就是最优的了 #include using namespace std; #define LL long long int a[40]; int main() { int T,cas=1; scanf("%d",&T); while(T原创 2016-09-15 23:08:42 · 277 阅读 · 0 评论 -
Codeforces Round #381 (Div. 2) C Alyona and mex (构造)
思路:要求区间的mex最大那么显然就是当这个区间是0,1,2...的时候最大嘛,那么最小的最大mex其实就是区间长度,然后0,1,2,0,1,2那样子的构造就可以了 #include using namespace std; int main() { int n,m; int ans = 1e9; scanf("%d%d",&n,&m); while(m--) { int原创 2016-12-01 21:07:03 · 259 阅读 · 0 评论