codeforces B. Permutation 解题报告】的更多相关文章

题目链接:http://codeforces.com/problemset/problem/359/B 题目意思:给定n和k的值,需要构造一条长度为2n(每个元素取值范围只能是[1,2n])且元素各不相同的序列,这条序列符合等式. 首先非常感谢乌冬兄和syy的帮助!!尤其是乌冬兄. 刚开始做的时候完全没有思路,写出那条等式的展开式也没有发现规律.在他们的思维引导之下,我终于明白了这个问题其实可以简化为求一对数(假设为ai-1,ai)的差,这个差 = k 即可,但是k必须为负数!!!也就是ai-1…
题目链接:http://codeforces.com/problemset/problem/500/B 题目意思:给出一个含有 n 个数的排列:p1, p2, ..., pn-1, pn.紧接着是一个 n * n 的矩阵A,当且仅当 Aij = 1 时,pi 与 pj 可以交换数值.现在问如何交换数值,使得最后得到的排列字典序最小. 比赛的时候不会做,看了Tutorial 1 的解法,觉得别人做得太巧妙了,出题者也出得很好 ^_^ 可以看这个:http://codeforces.com/blog…
题目链接:http://codeforces.com/problemset/problem/483/C 题目意思:给出 n 和 k,要求输出一个含有 n 个数的排列 p1, p2, ...,pn,使得 |p1 - p2|, |p2 - p3|, ..., |pn - 1 - pn| 恰好有 k 个不同的数.注意,p1, p2, ..., pn 每个数是不相等的,而且不大于 n. 构造题,这个通过手动很容易知道答案.又献上我的恶心涂鸦---看完之后会发现其实很简单,好像比 B 还要简单. 只要红色…
题目链接:http://codeforces.com/problemset/problem/361/B 题目意思:有n个数,这些数的范围是[1,n],并且每个数都是不相同的.你需要构造一个排列,使得这个排列上的数与它所在位置的序号的最大公约数满足 > 1,并且这些数的个数恰好满足k个,输出这样的一个排列. 先说明什么时候得不到这样的一个排列,就是n = k的情况.因为任何一个数x放在第1个位置的gcd(x, 1) = 1的,所以要得出这样一个排列 k 最大只能为 n-1 .而k最小为0个,这个排…
题目链接:http://codeforces.com/problemset/problem/31/C 题目意思:给出 n 个 lessons 你,每个lesson 有对应的 起始和结束时间.问通过删除一个lesson后能否使得所有lesson 持续的时间互不相交.注意,如果某个lesson结束的时刻恰好是另一个 lesson 的开始时刻,那么这两个lesson 也看作是不相交的. 看了题目之后,一如既往地,没什么想法= =.C题好多时候都这样,继续努力!!! 想着看Tutorial 直接学习,怎…
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 字典 日期 题目地址:https://leetcode-cn.com/problems/palindrome-permutation/ 题目描述 Given a string, determine if a permutation of the string could form a palindrome. Example 1: Input: "cod…
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 逆序数字交换再翻转 库函数 日期 题目地址:https://leetcode.com/problems/next-permutation/description/ 题目描述 Implement next permutation, which rearranges numbers into the lexicographically next grea…
题目链接:http://codeforces.com/problemset/problem/499/B 题目意思:给出两种语言下 m 个单词表(word1, word2)的一一对应,以及 professor's lecture 的 n 个单词.问记下来的笔记是什么.对于professor's lecture 的某个单词,如果在单词表中找到,word1, word2 都有可能.如果 word1 的长度  <= word2 的长度,就输出word1,否则word2 考了map<string, st…
题目链接:http://codeforces.com/problemset/problem/495/C 题目意思:给出一串只有三种字符( ')','(' 和 '#')组成的字符串,每个位置的这个字符 '#'可以替换成不少于 1 个的 ')',问如何对每个'#'进行替换,使得对于字符串的任意一个位置, ')' 的数量始终不大于'(' 的数量.注意,'#'被替换成')'的总数以及原先有的')'的数量之和 == '(' 的总数. 花了两个晚上的一点时间,今天在图书馆里终于想到解决方案了,大感动 ~~~…
题目链接:http://codeforces.com/problemset/problem/490/B 题目意思:给出每个人 i 站在他前面的人的编号 ai 和后面的人的编号 bi.注意,排在第一个位置的人他前面是无人的!于是 a1 = 0.最后那个人的后面是木有人的,即 bn = 0.然后根据这些条件求出整个序列是如何排的,输出答案. 这条题卡了好久.........啊........啊........啊 首先很容易知道第二个位置的人的编号 和 倒数第二个人的位置编号.用一个aft[]数组记录…