题目链接:Codeforces 453 Little Pony and Summer Sun Celebration
题目大意:n个节点,m条边,然后m行给定边,最后一行表示每个节点需要进过的次数为奇数次还是偶数次。
解题思路:构造,任意从一个奇数点开始(统一森林的处理),然后每次向下遍历没有经过的节点,并且回溯,每次回溯都要判断一下刚才走过的点满不满足条件,不满足的话就再走一次。最后...
分类:
其他好文 时间:
2014-08-02 23:28:14
阅读次数:
218
方法一:快速幂。但是肯定还是超时。方法二:利用等比数列公式,但是有除法,做不下去了。方法三:有点分治的味道..n为偶数时,x^0+x^1+x^2+.......x^n=(x^0+x^1+x^2+.....x^(n/2))*(1+x^(n/2))-x^(n/2);也就是F(n)=F(n/2)*(1+x...
分类:
其他好文 时间:
2014-08-02 23:11:04
阅读次数:
242
题意:给定一个字符串,求有多少个奇数子串和多少偶数子串为 “回文串” 这边回文串很特殊之含有 ab 两种字母 而且 相邻的字母相同则消去一个 一直到不存在相邻的相同。思路: 在这种串中 ,消到最后 一定是 abababababa。。。 或者 bababababab。。。 那么 只要头尾一样 那么这个...
分类:
其他好文 时间:
2014-08-02 20:55:04
阅读次数:
169
题目:已知n个数a[1..n],还有另一个数M,在前n个数中找到差值最小的两个数使得他们的和是M。
分析:数学。排序,找M/2。然后向两边分别扩展即可。
设a[s]是第一个大于M/2的数字,
如果M是偶数,并且存在至少两个M/2,则a[s-1]、a[s-2]一定是M/2;
否则a[s-1] M,从这两点向两边扩展即可...
分类:
其他好文 时间:
2014-08-02 12:57:53
阅读次数:
159
/*
中文题意:
中文翻译:
题目大意:
解题思路:当n不为1的时候,用while循环,直到出现n为止,while循环很适合循环次数不确定时使用。
难点详解:对位运算的理解
关键点:位运算
解题人:lingnichong
解题时间:2014/08/01 15:41
解题感受:c语言学多了后,在参加竞赛时,取余的话都用n&1=0为偶数,n&1=1为奇数。
*/
...
分类:
其他好文 时间:
2014-08-01 20:01:42
阅读次数:
170
题目大意:求移动数列中的第一个元素到最后一位时的最少逆序数。(进行n次移动,求移动过程中最少的逆序数)
难点:
一:什么是逆序数? 定义: 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。逆序数为偶数的排列称为偶排列;逆序数为奇数的排列称为奇排列。如2431中,21,43,41,31是逆序,逆序数是4...
分类:
其他好文 时间:
2014-08-01 16:07:21
阅读次数:
153
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分。
代码:
/*
调整数组顺序使得奇数位于偶数前面
by Rowandjj
2014/8/1
*/
#include
#include
using namespace std;
//高效解法,但会调整后的数组元素相对顺序会发生改变
void func(int *...
分类:
其他好文 时间:
2014-08-01 13:37:51
阅读次数:
230
分拆素数和
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u
Submit
Status
Practice
HDU 2098
Description
把一个偶数拆成两个不同素数的和,有几种拆法呢?
Input
输入包含一些正的偶数,其值不会超过10000,个数不...
分类:
其他好文 时间:
2014-07-31 23:55:50
阅读次数:
279
哎,最近都在做图论,没有练DP,现在一遇到DP就不会了= =因为有合并这个操作,所以只要是首位相同的字符串肯定是能够构成good串的,那么只要统计在奇数位上出现的0,1的个数和偶数位数,随便递推一下就出来了#include #include #include #include #include #i...
分类:
其他好文 时间:
2014-07-31 23:34:50
阅读次数:
241
Problem Description有一个长度为n(nint main(){ int m,n,i; while(scanf("%d%d",&n,&m)!=EOF) { int sum=0,k=0,j=0; for(i=1;i<=n;i++)//不能是for(i=...
分类:
其他好文 时间:
2014-07-31 23:31:00
阅读次数:
163