构造
ACkingdom
这个人很懒,什么都没有留下
展开
-
洛谷-构造题专项训练-P5595 【XR-4】歌唱比赛
题目链接 代码: #include<bits/stdc++.h> #define int long long #define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); const int N=2e6+7; const int M=2e4+5; const double eps=1e-8; const int mod=998244353; const int inf=0x7fffffff; const double pi=3.1原创 2020-08-19 01:20:44 · 286 阅读 · 0 评论 -
【杭电多校2020】1009.Increasing and Decreasing
题目链接 思路: 将整个序列分成x块,每一块找一个元素出来形成的就是最长递增子序列;而递减序列正好是某一整块元素。 代码: #include<bits/stdc++.h> #define int long long #define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); const int N=2e6+7; const int M=2e4+5; const double eps=1e-8; const int mod=998原创 2020-08-13 01:43:31 · 348 阅读 · 0 评论 -
2020牛客暑期多校训练营(第七场)B Mask Allocation(思维,构造)
题目链接 思路: while(true) 保证n>m,每次输出m个m,然后n-=m,当m==1时,输出n个1。 代码: #include<bits/stdc++.h> #define int long long #define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); const int N=1e5+5; const int M=2e4+5; const double eps=1e-8; const int mod=1e原创 2020-08-02 22:19:08 · 141 阅读 · 0 评论 -
2020牛客暑期多校训练营(第五场)F.DPS(构造)
题目链接 思路: 构造即可。 代码: #include<bits/stdc++.h> using namespace std; #define int long long #define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); const int N=55; const int M=4e5+8; const double eps=1e-8; const int mod=1e9+7; const int inf=0x7ffff原创 2020-07-25 22:40:11 · 125 阅读 · 0 评论 -
Codeforces Round #650 (Div. 3)-D. Task On The Board
题目链接 题意: 给你一个字符串s,你可以将该字符串删掉任意字符(也可以不删),然后再任意排序组成一个字符串,组成之后的字符串t[i]有一个数组b[i]表示t[i]与t中其他比t[i]字典序大的字符索引j的 |i - j| 的和,给你s,t[i]的长度和b[i],求t[i]。 思路: 首先找b[i]中的0,因为0肯定是最大的字母,然后减去0的字母对其他字母的影响,再在s中从大到小找满足0个数的字母补充t[i],然后再找0,再减去影响,再找字母,这样循环下去就能得到完整的t[i]。 代码: #include&原创 2020-07-11 22:31:34 · 193 阅读 · 0 评论 -
Codeforces Global Round 9-B - Neighbor Grid(构造)
题目链接 题意: 给你一个二维数组,你可以给任意一个数加上任意数,问你能否使该二维数组满足每个数的大小等于上下左右相邻的大于0的数的个数。 思路: 直接构造一个各个位置的最大数的数组,如果已经存在的数大于需要构造的数那么直接no,否则yes然后输出构造好的数组。 代码: #include<bits/stdc++.h> using namespace std; #define int long long #define IOS ios::sync_with_stdio(false);cin.ti原创 2020-07-06 15:34:40 · 156 阅读 · 0 评论 -
Codeforces Round #654 (Div. 2) - D. Grid-00100 (构造,思维)
题目链接 题意: 给你一个n*n矩阵和k个1,请你构造出一个使(列和的最大值-列和的最小值的平方)+(行和的最大值-行和的最小值)的平方最小的01矩阵。 思路: 构造一个全为0的矩阵然后将1加到行列和最小的位置即可。 代码: #include<bits/stdc++.h> using namespace std; #define int long long #define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); const原创 2020-07-02 20:25:40 · 2895 阅读 · 0 评论 -
Codeforces Global Round 8-C. Even Picture
题目链接 题意: 输入一个n,输出怎样填充一个范围无限大的方格平面才能使得有n个方块周围(上下左右)的方块都被填充且其余方块周围的填充数是2。 有道翻译是真的6(微笑),莫名其妙翻译出一句k(总填充数)需要尽可能小。 思路: 构造一个可以无限延长的一十字形的斜着重叠且完全符合题意的区域,如果n变化,那么该区域长度也随着有规律的变化,具体形状构造看代码。 代码实现: #include<bits/stdc++.h> using namespace std; #define int long long原创 2020-06-20 21:18:38 · 161 阅读 · 0 评论