-
题目链接:题目链接 题意:给出一个无向图,该图是通过仅包含‘a’ 'b' 'c'三个字母,以规则“i,j之间有边,当且仅当s[i]和s[j]相同,或者s[i]和s[j]在字母表中相邻”(也就是只有'a'和'c'是没有边相连的)得到的,现在问能否还原这个字符串,如果能,输出任意一个解。 思路:其实就是简单构造。。。 构造的一个技巧是。。把能确定的地方先确定了。。。。 我们发现'b'比较特殊。。因为b和任意点都相连。。。 于是可以统计一下度。。。然后确定字符串中的b 然后对于某个没有确定的位置,我放置一个a,并且把所有和这个位置相连的都放成a 字符串中剩下的没有确定的位置就一定是c了。 这个时候我再判断是否满足题中图的条件。 /* …
Read More -
题目链接 题意:给出一个数,问包含这个数三个数组成的勾股数,输出另外两个数。 思路: 所谓勾股数,就是当组成一个直角三角形的三边长都为正整数时,我们就称这一组数为勾股数. 那么,组成一组勾股数的三个正整数之间,是否具有一定的规律可寻呢?下面我们一起来观察几组勾股数: 规律一:在勾股数(3,4,5)、(5,12,13)、(7,24,25)(9,40,41)中,我们发现 由(3,4,5)有:32=9=4+5 由(5,12,13)有:52=25=12+13 由(7,24,25)有:72=49=24+25 由(9,40,41)有:92=81=40+41. 即在一组勾股数中,当最小边为奇数时,它的平方刚好等于另外两个连续的正整数之和.因此,我 …
Read More -
题目链接 题意:给出n个元素的序列,问能否得到一个新的序列,使得奇数位置非递减排列,偶数位数非递增排列。 思路:感觉一定可以啊。。。排序以后直接构造。。。 /* *********************************************** Author :111qqz Created Time :2016年03月31日 星期四 14时05分11秒 File Name :code/cf/problem/652B.cpp ************************************************ */ #include <cstdio> #include <cstring> …
Read More -
http://codeforces.com/contest/625/problem/D 题意:问能否找到一个s,满足s+s的反转=k 思路:如果是回文数。。。那么显然满足。除以2就可以得到答案。 如果不是回文数。。那么考虑进位的情况。 要么从后一位进1,要么从前一位退10回来。 需要特殊考虑1开头的。 /* *********************************************** Author :111qqz Created Time :2016年02月07日 星期日 18时28分39秒 File Name :code/cf/#342/D.cpp …
Read More -
http://codeforces.com/contest/625/problem/C 题意:构造一个矩阵。。满足三个条件。。。 思路:简单构造。。。看代码把。。。。 /* *********************************************** Author :111qqz Created Time :2016年02月07日 星期日 17时49分15秒 File Name :code/cf/#342/C.cpp ************************************************ */ #include <cstdio> #include <cstring> …
Read More -
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid;=8&page;=show_problem&problem;=1726 题意:给出26个大写字母的权值,要求构造一个长度为n(n不超过210)的字符串。并且满足奇数位置只能放元音字母,偶数位置只能放辅音字母,且每个元音字母最多放21次,每个辅音字母最多放5次,要求构造的字符串的权值之和最小,在权值最小的前提下字典序最小。 思路:贪心。一开始错误得以为不是完整得不能交换(也就是不完整的字母只能放在最后,这是错误的)。但实际上只要每个字母的数量不变,那么就不影响权值。所以做法是, …
Read More -
http://codeforces.com/contest/22/problem/C 题意:要求用n个点m条边构造一个不允许有重边的图,满足当去掉点v的时候,剩下的n-1个不联通。如果有答案输出任意,没答案输出-1. 思路:首先如果n个点要联通。。至少有n-1条边,此时为一棵树。但是是不是边越多越好呢?显然是不可以的。满足去掉一个点使得n-1个点不联通的情况为,存在一个点u只和v相连,不和任意任何其他点相连,那么当去掉v点,u点就变成不可到达了。边数最多的情况就是,除了v点以外的n-1个点,每个点的度都是n-2(去掉自身以及u点还有n-2个点),,那么除去u点以外的n-1个点的度数就是(n-1)(n-2),边数则 …
Read More -
http://codeforces.com/problemset/problem/600/C 题意:给定一个字符串。要求用最少的变换得到一个回文串。且在变换次数相同时要字典序最小的。输出变换后的字符串。 思路:对不能构成会文串有影响的是出现奇数次的字母。所以我们先统计每个字母出现的次数。然后按照出现奇数次的字母的个数分奇偶分别搞。偶数的话直接把后面一半变成前面一半。奇数的话,也是这样。输出的时候按照字母从a扫到z,如果有就输出一半。然后再倒着扫一遍。 输出另一半。这样可以保证是字典序最小。需要注意的是奇数的时候的输出情况。不要忘记中间那个字母。 /* …
Read More -
http://codeforces.com/contest/377/problem/A 题意:给定一个n*m的maze. ‘.’代表空,‘#’代表墙。要求构造一种方案,使得将k个空格填成墙壁后不影响当前的连通性(即没有被填充的空格之间可以相互到达) 思路:一开始想从上往下从左往右构造。错误的认为四个角一定是可以变成墙的。 但其实只要是可能在某条路径上的点,就都不一定可以变成墙。。而四个角显然可以被某条路径经过。 正确的解法很巧妙。以任意一个空格开始跑一遍dfs,设空格一共有sum个,那么就dfs到(sum-k)个。可以做好标记。通过dfs得到的这(sum-k)之间一定是联通的。那么只要填充剩下的就可以了。 /* …
Read More -
题意是说,能构造多少本元勾股数和勾股数,要求构造的数<=n 所谓本元勾股数,就是三个勾股数没有公因数,两两互质。 由本元勾股数扩大k倍,就可以得到其他勾股数。 而构造本元勾股数的方法如下: ***a=st,b=(s^2-t^2)/2,c=(s^2+t^2)/2 其中s>t>=1是任意没有公因数的奇数! 引用一段构造正确性的证明: 本原勾股数组(PPT)是一个三元组(a,b,c),其中a,b,c无公因数,且满足a² +b² =c²。 很明显存在无穷多个勾股数组(abc同乘以n),下面研究abc没有公因数的情况,先写出一些本原勾股数组: case:(3,4,5) (5,12,13) (8,15,17) …
Read More