CF R 209 div 2 CF359B Permutation 构造】的更多相关文章

LINK:Permutation 休闲一下 开了一道构造题. 看起来毫无头绪 其实仔细观察第二个条件 0<=2k<=n. 容易想到当n是奇数的时候 k的范围更小 再手玩一下第一个条件 容易发现 想要价值 必须使得 后面的式子 正值和负值抵消掉. 这样每次差是偶数倍 所以只需要凑出来k就行了 而后面的式子想刚好抵消掉k如果直接使用两个数字的话构造会略显繁杂. 考虑多个数字抵消 那么容易想到 两个相邻的数字带来的贡献为1 这样使用两个相邻的数字不断构造正数和负数抵消k即可. 刚好这样做 k还是在合…
正解:构造 解题报告: 这个是传送门! 昂直接讲思路趴?毕竟这种构造题的话除了思路也没什么好说的只要想明白辽还是通常来说难度不大的QwQ 首先提供一个对正解毫无启发的由正解启发而来的想法QAQ 就首先可以把右边那个拆一下,就变成奇数位之和-偶数位之和的绝对值,于是可以发现,只要不改变奇偶相对位置,右边就不会改变 于是就变成只要凑出左边就欧克辽 那左边的话,显然不能改变奇偶顺序,如果同时改变奇位和偶位比较难考虑了还是? 那就先让它单调增排列不改变奇位只改偶 那这个时候就发现,如果改变相邻为k的,相…
LINK:Perfect Triples 初看这道题 一脸懵逼.. 完全没有思路 最多就只是发现一点小规律 即. a<b<c. 且b的最大的二进制位一定严格大于a b的最大二进制位一定等于c. 但是这对解题没有任何用处. 考虑打个表看看有什么规律没有. 通过这道题 我承认 打表找规律也是一个技术活. 虽然能看出来到了第二排 a的数值是递增的 考虑特判前面几个我们就能快速找到a了. 但是b 和 c还是难找.那继续观察后面几项的规律. 我的败笔也是出自这里 规律一般也是符合较小的数据的 没道理不符…
解题思路: 如果序列a是单调递增的,则序列为1,2,..... 2n,则将给出的式子化简得Σ(a2i - a2i-1) = n 如果序列a是单调递减的,则序列为2n,.........2, 1,则将给出的式子化简得为0 故本题的解决方法是前面2k个序列即a1,a2......a2k是单调递增的,后面的序列是单调递减的 #include <iostream> using namespace std; int main(){ int n , k; cin >> n >> k…
CF359B Permutation \(solution:\) 作为一道构造题,这题也十分符合构造的一些通性----(找到一些规律,然后无脑循环). 构造一个长度为 \(2n\) 的排列 \(a\) \(0≤2k≤n\) 看到这样两个限制条件,我们想不找出规律都难啊!在自己手推一下真不难发现: 将\(a_{2i}\)和\(a_{2i-1}\)互换一下,就可让算式的结果+2,而整个式子的结果要等于2∗k,再结合一下上面的第二个限制条件,聪明的Oier,应该可以开始码代码了吧. \(code:\)…
前言:没想到那么快就打了第二场,题目难度比CF Round #509 (Div. 2)这场要难些,不过我依旧菜,这场更是被\(D\)题卡了,最后\(C\)题都来不及敲了..最后才\(A\)了\(3\)题,幸好\(Rating\)没掉. A. Benches Description 有\(n\)个位置,给出每个位置上原本有\(a[i]\)个人.现有\(m\)个人,把他们安排到这\(n\)个位置上,设安排完后位置上人数最多的位置有\(k\)个人,求最大的\(k\)和最小的\(k\). Solutio…
CF Round #524 Div.2 - 竞赛题解 不容易CF有一场下午的比赛,开心的和一个神犇一起报了名 被虐爆--前两题水过去,第三题卡了好久,第四题毫无头绪QwQ Codeforces 传送门 Tab, 先写了ABC题,后面的之后再补 QwQ 『解析』 A-Petya and Origami 读懂题意就会做--根据题意可以求出3种"sheet"各自需要的数量,然后每一种的数量除以k向上取整后求和就是答案. B-Margarite and the best present 简单的…
[题解]CF359B Permutation 求一个长度为\(2n\)的序列,满足\(\Sigma |a_{2i}-a_{2i-1}|-|\Sigma a_{2i}-a_{2i-1}|=2k\) 这种带绝对值的题目套路就是把绝对值拆开.看看\(n=2\)时候的情况 \(\left[1,2,3,4\right]\) \(|2-1|+|4-3|-|2-1+4-3|=0\) \(swap(1,2) =>\) \(|1-2|+|4-3|-|1-2+4-3|=2\) 也就是交换一组产生\(2\)的贡献,直…
CF Round #600 (Div 2) 解题报告(A~E) A:Single Push 采用差分的思想,让\(b-a=c\),然后观察\(c\)序列是不是一个满足要求的序列 #include<bits/stdc++.h> using namespace std; const int maxn = 1e5 + 10; int T, n; int a[maxn], b[maxn]; int c[maxn]; int main() { cin >> T; while(T--) { s…
[Educational Codeforces Round 81 (Rated for Div. 2)]E. Permutation Separation(线段树,思维,前缀和) E. Permutation Separation time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You are given a permutat…
CF Round #551 (Div. 2) D 链接 https://codeforces.com/contest/1153/problem/D 思路 不考虑赋值和贪心,考虑排名. 设\(dp_i\)是子树i中的i是第dp_i大的(相同大小放在后面). \(opt=1,dp_u=max(dp[v])(v\in G)\) \(opt=0,dp_u=\sum\limits _{v\in G}{dp[v]}\) dp[1]是1到k中第dp[1]大的,就是k-dp[1]+1 然后\(ans=k-dp[…
Codeforces Round #275 (Div. 1)A. Diverse Permutation Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/482/problem/A Description Permutation p is an ordered set of integers p1,   p2,   ...,   pn, consisting of n distinct posi…
B. Kyoya and Permutation Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/553/problem/B Description Let's define the permutation of length n as an array p = [p1, p2, ..., pn] consisting of n distinct integers from range from…
终于打了一场CF,不知道为什么我会去打00:05的CF比赛…… 不管怎么样,这次打的很好!拿到了Div. 2选手中的第一名,成功上紫! 以后还要再接再厉! [A]Check the string 题意: 一个合法的字符串可以这样生成: 初始是一个空串,然后小 A 同学往这个串中加入若干(大于零)个字符\(\texttt{a}\),然后小 B 同学往这个串的末尾加入若干(大于零)个字符\(\texttt{b}\),最后小 C 同学往这个串的末尾加入一些字符\(\texttt{c}\),但要满足\(…
题目链接,点击一下 Round#273 Div.2 ================== problem A Initial Bet ================== 很简单,打了两三场的cf第一次在10分钟内过题 判平均数,且注意b为正 #include<iostream> using namespace std; int main() { ,n; ; i < ; i++) { cin>>n; res += n; } ; == && b) cout<…
A. Table time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Simon has a rectangular table consisting of n rows and m columns. Simon numbered the rows of the table from top to bottom starting f…
LINK:Permutation 对于这种构造神题 我自然是要补的.为啥就我没想出来哇. 30分还是很好写的 注意8!实际上很小 不需要爆搜 写bfs记录状态即可.至于判断状态是否出现与否 可以开map np一点的做法是利用康拓展开和逆康托展开(还需要hash 没啥用. 但是 经过不断的手玩排列为8的数列容易发现 对于最差的情况 8 7 6 5 4 3 2 1 也最多需要3次. 所以 可以直接去掉bfs的过程 直接三层2^n枚举 开map统计状态量 这样可以做的飞快.算法的名称估计可以叫做为 模…
D. Optimal Number Permutation 题目连接: http://www.codeforces.com/contest/622/problem/D Description You have array a that contains all integers from 1 to n twice. You can arbitrary permute any numbers in a. Let number i be in positions xi, yi (xi < yi) i…
A. Two Substrings 题意:给一个字符串,求是否含有不重叠的子串"AB"和"BA",长度1e5. 题解:看起来很简单,但是一直错,各种考虑不周全,最后只能很蠢的暴力,把所有的AB和BA的位置求出来,能有一对AB和BA不重叠即可. #include <bits/stdc++.h> using namespace std; ]; vector<int> ab; vector<int> ba; int main() { w…
题目链接 假设始终可以找到一种状态使得值为0, 那么两个1之间需要隔n-2个数, 两个2之间需要隔n-3个数, 两个3之间隔n-4个数. 我们发现两个三可以放到两个1之间, 同理两个5放到两个3之间....这样就构造好了. #include <iostream> #include <vector> #include <cstdio> #include <cstring> #include <algorithm> #include <cmat…
http://codeforces.com/contest/676 A. Nicholas and Permutation 题意:有一个从1到n的数列,可以任意对调两个数字一次,问数字1和n所在位置之间的最大距离是多少? 思路:可以选择把数字1和开头的数字对调,或者1和末尾的数字对调,或者n和开头的数字对调,或者n和末尾的数字对调,一共四种对调方法,只需要比较对调之后的下标差的绝对值,取最大的即可. 代码: #include<iostream> #include<cstdio> #…
没有参加,但是之后几天打了哦,第三场AK的CF比赛. CF大扫荡计划正在稳步进行. [A]Olympiad 题意: 给\(n\)个人颁奖,要满足: 至少有一个人拿奖. 如果得分为\(x\)的有奖,那么任意得分大于\(x\)必须拿奖. 得分为\(0\)的人不能拿奖. 每个人的得分\(0\le x\le 600\),问有多少种颁奖方式? 题解: 本质上,问题可以转化为有多少种不同的得分.于是开一个桶做. #include<cstdio> int n,x,cnt[601],ans; int main…
这次是Div.1+Div.2,所以有7题. 因为时间较早,而且正好赶上训练,所以机房开黑做. 然而我们都只做了3题.:(. 链接. [A]声控解锁 题意: Arkady的宠物狗Mu-mu有一只手机.它需要朝这个手机吠一个英文单词密码(两个字符长),手机才能解锁. Mu-mu的仇敌,Kashtanka想要解锁Mu-mu的手机,但是它只会说一些两个字符长的英文单词. 它想要用某种顺序吠出若干个英文单词,使得手机能解锁.告诉Kashtanka它有没有可能做到这一点. 输入: 第一行一个两个字符长的字符…
D. Handshakes Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/534/problem/D Description On February, 30th n students came in the Center for Training Olympiad Programmers (CTOP) of the Berland State University. They came one…
A permutation p is an ordered group of numbers p1,   p2,   ...,   pn, consisting of ndistinct positive integers, each is no more than n. We'll define number n as the length of permutation p1,   p2,   ...,   pn. Simon has a positive integer n and a no…
这道题直接去构造答案即可. 对于l的二进制表示,从右到左一位一位的使其变为1,当不能再变了(再变l就大于r了)时,答案就是l. 这种方法既可以保证答案大于等于l且小于等于r,也可以保证二进制表示时的1最多. #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<string> #include<cmath> #include&l…
传送门 题意 给出n个数及x,求 \[\frac{\sum _{i=1}^n x^{a_1+a_2+...+a_{i-1}+a_{i+1}+...a_n}}{\prod_{i=1}^n x^{a_i}}\] 分析 结果必然为\(x^{sum}\),sum的值首先取所有数的和减去最大值 然后暴力合并,具体原因我不太懂,只能附上CF的标准题解 Obviously, the answer is \(x^v\). Let \(sum = a1 + a2 + ... + an\). Also let $s…
LINK:Kaavi and Magic Spell 一打CF才知道自己原来这么菜 这题完全没想到. 可以发现 如果dp f[i][j]表示前i个字符匹配T的前j个字符的方案数 此时转移变得异常麻烦 状态转移一次变成了O(n). 会超时 而且这个状态的转移也是不正确的 可能当前的S字符串后面放了一些不能匹配的东西 但是此时却体现不出来. 那我们如何描述每次增加一个字符且和T匹配多少这种状态呢. 一个思路 先对于S串的某个i暴力枚举 其对应在T中的位置 这样的话dp就变成了 f[i][j][k]表…
赛后看了半天题 才把题目看懂 英语水平极差. 意思:定义一个集合S的权值为max{gcd(a,b)};且\(a\neq b\) 这个集合可以从1~n中选出一些数字 求出当集合大小为k时的最小价值. 无法二分 考虑构造. 考虑一种简单的情况 1~n的中gcd(a,b)最大为多少 可以发现我们只需要枚举i 看一下i/i的最小质因子的最大值即可. 所以是从质因子分解的层面考虑比较简单. 可以发现 当两个数字质因子集合有包含关系的时候 加入小的那个数到集合S之中一定不会比大的数加入集合S结果更差.(显然…
LINK:Challenges in school №41 考试的时候读错题了+代码UB了 所以wa到自闭 然后放弃治疗. 赛后发现UB的原因是 scanf读int类型的时候 宏定义里面是lld的类型导致UB. 读错题的原因是 太急了 而且题目描述不是很清晰 导致按照自己含糊不清的想法+样例的佐证 成为了另外一个题目. 这道题是要求我们进行构造. 对于一个要求我们每轮都要进行一次扭头 且刚好在k轮都进行完. (这类似于冒泡排序 但是我们不考虑冒泡排序的性质也是可以写的. 考虑 会进行多少次这样的…