构造
考验创造力的想法题
为什么他们cf写的这么快
这个作者很懒,什么都没留下…
展开
-
cf1492 C2. k-LCM (hard version)(数学+构造)
题目链接思路:一如既然的构造题。。。这里的k其实再大也没啥用,我们只要3个数就可以构造出来了,所以多余的全部输出1,n也就变成了n-(k-3)。那么就三个怎么构造呢,分三种情况,一、n是偶数且是4的倍数,三个数分别是2,n/2 -1,n/2 -1。二、n是偶数且是4的倍数,三个数分别是n/4,n/4,n/2。三、n是奇数,1,n/2,n/2(这里n是奇数所以向下取整)#include<bits/stdc++.h>using namespace std;int main(){ int原创 2021-05-08 20:18:52 · 213 阅读 · 0 评论 -
【牛客】B Applese 走方格
链接:https://ac.nowcoder.com/acm/contest/330/B来源:牛客网精通程序设计的 Applese 又写了一个游戏。在这个游戏中,它位于一个 n 行 m 列的方阵中的左上角(坐标为(0, 0),行的序号为0 \sim n - 10∼n−1,列的序号为0 \sim m - 10∼m−1)。现在它想不重复地走过所有格子(除了起点),最后回到左上角的一个方案。每次只能往上下左右其中一个方向走一格。输入描述:仅一行两个整数 n 和 m,表示方阵的大小。保证大于1 \ti原创 2021-03-10 22:09:59 · 74 阅读 · 0 评论 -
Codeforces Round #592 (Div. 2) D. Paint the Tree(构造)
题目链接题意:给定一棵树,要求你给每个节点涂色,要求连续的三个节点的颜色不能相同,每个节点涂三个颜色的花费分别是a【i】,b【i】,c【i】,问你满足要求的最小花费。思路:很显然,画个图就知道能满足条件的只有链的情况,于是我们只要固定从根节点开始的前三个节点的颜色,那么整条链的颜色就都确定了。#include<bits/stdc++.h>using namespace st...原创 2020-04-19 09:51:25 · 140 阅读 · 0 评论 -
codeforces1090D D. Similar Arrays(构造+思维)
题目链接题意:给定n和m对关系,要你构造出两个长度为n的数组,其中a数组是1-n的全排列中的一种,b数组要求至少有一个元素要相等,比如给出一个关系1 3的意思就是a【1】和a【3】的大小关系要和b【1】和b【3】的大小关系一样。思路:只要随便找到没有关系的两个点l和r,把b【l】和b【r】弄相等就行了,剩下的只要倒着赋值,能保证后面的数都能大于前面的数就可以了。#include<b...原创 2020-04-15 19:52:28 · 177 阅读 · 0 评论 -
Codeforces Round #632 (Div. 2) D. Challenges in school №41(构造)
题目链接题意:有一个由L和R组成的字符,每一轮你都可以将RL变化成LR,问你能否刚好经过k轮把字符串变成左边都是L,右边都是R。思路:暴力构造就行,我们可以算出构造出这样的字符串的最小步骤和最大步骤的,只要k在这个范围内就肯定能构造出来。#include<bits/stdc++.h>using namespace std;typedef long long ll;con...原创 2020-04-11 20:14:20 · 93 阅读 · 0 评论 -
Codeforces Round #630 (Div. 2) D. Walk on Matrix(思维+构造)
题目链接思路:又是个掉分场,比赛时思维转的实在太慢QAQ。最后30s过的,好像大佬们有别的构造方法,这里就写一下自己的。一开始太纠结怎么改这个dp伪代码浪费了太多时间,其实要想差值为k,我们就想想是否可以构造一个按照伪代码的思路求出来的是0,正常的最大值是k的矩阵不就行了?那怎么构造呢?我们发现这么个东西,(maxx^k)&k,其中maxn是个很大的数(我这里是1<<18...原创 2020-04-01 21:25:31 · 150 阅读 · 0 评论 -
Ozon Tech Challenge 2020 (Div.1 + Div.2, Rated) E. Kuroni and the Score Distribution(思维+构造)
题目链接题意:要你构造出这样一个序列:1、所有序列元素满足a【i】在【1,1e9】范围内;2、所有元素满足单调递增3、存在a【i】+a【j】=a【k】,i<j<k这样的三元组的个数刚好为m个。思路:一个思维构造题,先想想怎么刚好构造出m个这样的三元组,我们构造一个最简单的序列1 2 3 4 5.。。。我们可以发现如果是这样的一个序列,对于每一个a【i】它对答案的贡献都是0...原创 2020-03-04 12:44:59 · 238 阅读 · 0 评论 -
Codeforces Round #620 (Div. 2) D. Shortest and Longest LIS(构造+贪心+思维)
题目链接题意:给你一个只有大于小于号的字符串,要你构造出一个1到n序列,这个序列要满足给出的大于小于号字符串的大小关系,要你输出一个最小的LIS和最大LIS的序列。思路:根据贪心思想,如果有连续小于的话,他肯定是有LIS这个是我们没办法改变的,要想LIS最小的话我们就是要LIS的数量等于最长的连续小于号的数量+1,LIS最大的话就是等于所有小于号数量+1,然后根据这个原则构造,LIS最小时...原创 2020-02-16 16:33:29 · 202 阅读 · 0 评论 -
Codeforces Round #583 (Div. 1 + Div. 2) E. Petya and Construction Set(树上构造)
题目链接思路:先构造奇数点,其他奇数点在它的长度小于当前链的长度,那么就构造在i+len-1位置的分支上,否则就构造在链尾。#include<bits/stdc++.h>using namespace std;const int maxn=1e5+1;vector<pair<int,int>>v[maxn<<2];pair<in...原创 2020-02-18 20:39:34 · 163 阅读 · 0 评论 -
Codeforces Round #582 (Div. 3) E. Two Small Strings(思维+构造)
题目链接思路:其实这道题一开始想的是对的,但是出了bug就没敢继续往下想。。。对于每个s和t对最终字符串的影响,我们其实可以发现最后的答案一定存在与6和字符串的全排列,就是abc,acb,bac,bca,cab,cba。但是这里要注意一下就是s和t中如果存在相同字符的话要需要考虑一种排列就是aaaabbbbcccc这种先单个字符全输出的情况,如果都不存在,则no。#include <...原创 2020-02-24 22:01:03 · 115 阅读 · 0 评论 -
2019-2020 ICPC, NERC, Northern Eurasia Finals L - Lexicography(贪心+构造)
题目链接题意:给定n*l长度的字符串,要你构造出n个长度为l的字符串,这n个字符串必须满足两个条件,第一:字符串从1到n要满足字典序从小到大;第二:要满足第k个字符串的字典序要尽可能地小。思路:我们肯定先构造好1-k行地字符串,后面的随意,1-k行字符串依次顺序构造就行,但是要注意一点,每次构造时要看看与k字符串前一个位置相等的位置在哪里(也就是代码里的now),不然你构造出地会不满足字典序...原创 2020-02-12 21:43:57 · 500 阅读 · 0 评论 -
Codeforces Round #569 (Div. 2) D - Tolik and His Uncle(思维+构造)
题意:给定n*m的矩阵,要你从(1,1)遍历矩阵的每一个点,每次跳的时候有一个增良(dx,dy),要求这个增量不能出现相同,求一种可行方案。思路:二维的不好考虑,可以先考虑一维的,比如你可以1->5,5->2,2->4,4->3这样是不是增量互不相同,这样的话二维情况也一样,就是两两对称输出就行,不过要注意一下n是奇数的时候,n是奇数的时候,中间对称的那一列别忘了输出。...原创 2020-01-21 16:34:33 · 129 阅读 · 0 评论 -
Codeforces Round #607 (Div. 2) C - Cut and Paste(构造+规律)
题意:给定一个字符串s和一个整数x,现在规定每一部做3件事情,一、移动光标l;二、将【l,len(此时字符串长度)】剪切;三、复制s[l]次到s后面,如此反复做x次。看样例应该能看明白。思路:字符串长度应该还是很好求地,公式为:len=i+s[i]*(len-i);可是这个公式地前是你得知道s[i]是多少,否则没法求,所以可以先把字符串长度【1,x】地字符先求出来,然后套公式就行了,(一开始...原创 2020-01-25 15:48:16 · 180 阅读 · 1 评论 -
Codeforces Round #604 (Div. 2) D - Beautiful Sequence(枚举+构造)
题意:给你a个0,b个1,c个2,d个3,要你构造出任意一个满足相邻数字差值为1的序列。思路:这道题大佬好像有什么高级算法可以解。。。然而孱弱只会枚举QAQ,这题枚举也可以过,但你得考虑得很仔细。我大体得思路就是先配01和23,然后再考虑12,因为1和2的话他们都有两个数可以和它配对,0和3只有一个数可以配对,按这个思路枚举之后再特判一下一些极端情况。比如 0 0 2 3这个???#incl...原创 2020-01-28 21:42:27 · 868 阅读 · 1 评论