上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 39 下一页
  2014年2月25日
摘要: 点我看题目题意 : 4条命令,0代表开始,在整组样例里肯定只有第一条是0,0后边的数字代表的矩阵的大小为n*n,1 x y z代表着将z加到(x,y)这个格子上去,2 l b r t代表着,让你求出从(l,b)到(b,r)所包含的矩形中包含的移动电话的数量。思路 :当时看书的时候我就看到二维数组了,一看这个题我就想到了用二维,二维其实和一维差不多,这个就是个模板题。不过依然要注意的是树状数组是从1开始的,所以输入之后要+1以防从0开始。#include #include #include using namespace std;const int maxn = 4123 ;int tree[1 阅读全文
posted @ 2014-02-25 14:46 枫、 阅读(164) 评论(0) 推荐(0)
  2014年2月24日
摘要: 点我看题目题意 :N个村子连成一条线,相邻的村子都有直接的地道进行相连,不相连的都由地道间接相连,三个命令,D x,表示x村庄被摧毁,R ,表示最后被摧毁的村庄已经重建了,Q x表示,与x直接或间接相连的村庄有多少个,当然包括他自己。思路 :这是一道用线段树,树状数组,还有STL都可以做的题。。。。... 阅读全文
posted @ 2014-02-24 21:00 枫、 阅读(301) 评论(0) 推荐(0)
摘要: 点我看题目链接题意 : 很多花盆组成的圆圈,每个花盆都有一个值,给你两个数a,b代表a位置原来的数换成b,然后让你从圈里找出连续的各花盆之和,要求最大的。思路 :这个题比较那啥,差不多可以用DP的思想来解决这个问题,你在某个地方将这个环断开,因为线段树无法建成环形的。然后再去找那个最大值。将这个序列分成两部分,先求左边的最大连续和a,再求右边连续和b,但是由于他们中间相连的那部分,就是左部分的最右边的连续最大和x加上右部分的最左边的连续最大和y加起来可能比ab都大,但分开的话可能并没有a或b大。所以要进行区间合并,将y并到左边去,或者将x并到右边去,但本身那个边界不变#include #inc 阅读全文
posted @ 2014-02-24 15:41 枫、 阅读(259) 评论(0) 推荐(0)
摘要: 点我看题目题意 :n个小盆友从1到n编号按顺时针编号,然后从第k个开始出圈,他出去之后如果他手里的牌是x,如果x是正数,那下一个出圈的左手第x个,如果x是负数,那出圈的是右手第-x个,游戏中第p个离开的孩子得到的糖果是f(p)个,f(p)是p的约数的个数。思路 : 因为f(p)是p的约数的个数,所以,要用到反素数,反素数的定义及求法。反素数s的约数个数比小于它的数的约数个数都多,最大反素数就是要找到的那个得到糖果最多的人。线段树记录的是还剩多少 人未出列。#include #include #include using namespace std;const int maxn = 506000 阅读全文
posted @ 2014-02-24 10:20 枫、 阅读(376) 评论(0) 推荐(0)
  2014年2月23日
摘要: 点我看题目题意 :给你c种颜色的n个珠子,问你可以组成多少种形式。思路 :polya定理的应用,与1286差不多一样,代码一改就可以交。。。。POJ 1286题解#include #include #include #include #include using namespace std;int gcd(int a,int b){ return b > 0 ? gcd(b,a%b) : a ;}int main(){ int c,s ; while (scanf("%d %d", &c, &s) != EOF) { if(c == 0 &&a 阅读全文
posted @ 2014-02-23 21:34 枫、 阅读(187) 评论(0) 推荐(0)
摘要: 点我看题目题意 :给你3个颜色的n个珠子,能组成多少不同形式的项链。思路 :这个题分类就是polya定理,这个定理看起来真的是很麻烦啊T_T.......看了有个人写的不错:Polya定理:(1)设G是p个对象的一个置换群,用k种颜色突然这p个对象,若一种染色方案在群G的作用下变为另一种方案,则这 两个方案当作是同一种方案,这样的不同染色方案数为:;(2)置换及循环节数的计算方法:对于有n个位置的手镯,有n种旋转置换和n种翻转置换.对于旋转置换: c(fi) = gcd(n,i) i为一次转过i颗宝石(i = 0 时 c=n;);对 于翻转置换:如果n为偶数:c(f) = n/2 的置换有n/ 阅读全文
posted @ 2014-02-23 21:30 枫、 阅读(277) 评论(0) 推荐(0)
  2014年2月22日
摘要: 点我看题目题意 :给你一个数列,a1,a2,a3,a4.......an,然后可以求出逆序数,再把a1放到an后,可以得到一个新的逆序数,再把a2放到a1后边,,,,,,,依次下去,输出最小的那个逆序数。思路 :用线段树就是查找比当前这个数大的已存入线段树中的个数。比如求a[i],那么就查找当前线段树(a[i]+1,n)中的个数。。然后把a[i]更新到线段树中。。求逆序数的时候法,当把x放入数组的后面,此时的逆序数应该为x没放入最后面之前的逆序总数加上(n-x)再减去(x-1);sum = sum+(n-x[i])-(x[i]-1)。这个破题让我很晕的地方,一开始我没注意的是,输入的数据大小是 阅读全文
posted @ 2014-02-22 21:15 枫、 阅读(140) 评论(0) 推荐(0)
摘要: 点我看题目题意 :其实题意我也说不清楚,因为比赛的时候我盯着看了1个小时也没看懂。。。。就是两个磁盘,第一个有n1的安装包,编号为1~n1,第二个有n2个安装包,编号为n1~n2。给你d对关系,(x,y)代表着安装x之前要先安装y。然后让你往里插入这两个磁盘,因为一次只能插一次,所以要满足他给的条件的时候要频繁的来回换。还有,要注意的一点是,无论先往里边插第一个还是第2个,第一次插的时候算一次,最后一次拔的时候算一次。思路 :其实我真不知道这是拓扑排序,,,,,后来才知道的。。。。。//#include //#include //#include //#include ////const in 阅读全文
posted @ 2014-02-22 18:29 枫、 阅读(664) 评论(0) 推荐(0)
摘要: 点我看题目题意 : 有n个兵想要自杀,所以他们决定围成一个圈,从1开始一直环到n,然后每第2个开始自杀,但是有一个兵不想死,所以让你编程求出最后一个应该死的人的位置,这样的话就剩他自己他可以不自杀了,也就是说如果是5个人的话,第2个位置的人自杀,然后再第2个,就是第4个位置的人自杀,然后再第2个,应该是第一个位置的人自杀,然后是5,最后剩了第三个位置的人。思路 : 好像约瑟夫环问题,不过这个有点小难,就是找规律,一开始不知道,后来YN美女说让我自己画画,然后我就从5画到14,这结果是3 5 7 1 3 5 7 9 11 13 。我就没再画下去,我也没找出规律来,刚巧前几天做CF的时候有一道题可 阅读全文
posted @ 2014-02-22 15:16 枫、 阅读(167) 评论(0) 推荐(0)
摘要: 点我看题目题意 :将给定的字符串编码,编码的规则根据两条,1.如果字符串里有连续相等的字符,就变为两个字符,一个是这些连续相同的字符的个数,另一个是这个字符,但是如果数量超过了9个,那就输出9再输出这个字符,剩下的重新按照规则进行,例如AAAA,就输出4A,AAAAAAAAAAA输出9A2A,2.如果字符串里有连续不相等的字符,就将这些字符原样输出并且在前后各加一个1,如果字符串里有刚好有个1,就将这个1变为11,AAAABCCC输出4A1B13C,123444输出11123134,1111111111输出911111。思路 :就是一道顶麻烦的题,如果不好好读题的话,就很难办,因为有很多细节问 阅读全文
posted @ 2014-02-22 14:29 枫、 阅读(177) 评论(0) 推荐(0)
上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 39 下一页