随笔分类 -  解题报告

1 2 3 4 5 ··· 9 下一页
摘要:HDU 5288 OO’s Sequence 题意 给定一个数列(长度<$10^5$),求有多少区间[l,r],且区间内有多少数,满足区间内其它数不是他的约数。 数的范围$[1,10000]$。结果对$10^9+7$取模。 Solution 首先可以预处理每个数的约数有哪些。对每个数存下它的位置有哪 阅读全文
posted @ 2015-08-05 16:28 keambar 阅读(413) 评论(0) 推荐(0)
摘要:[HDU 5351 MZL's Border]题意 定义字符串$f_1=b,f_2=a,f_i=f_{i-1}f_{i-2}$。 对$f_n$的长度为$m$的前缀$s$, 求最大的$k$满足$s[1]=s[m-k+1],s[2]=s[m-k+2]...s[k]=s[m]$Solutio... 阅读全文
posted @ 2015-08-05 16:10 keambar 阅读(332) 评论(0) 推荐(0)
摘要:题意: 如图,一列未知的区域长度为n(≤1000),给出第二列的数字,求区域中雷的排列有多少种。Solution: 搜索。这题看上去1000的范围很大,实际上加上合理的剪枝,状态数会变得非常非常少。 一个雷最多能影响3个格子,直接从上往下枚举这个地方有没有雷。有雷的话给影响的格子的数字减一。 ... 阅读全文
posted @ 2015-07-24 15:35 keambar 阅读(215) 评论(0) 推荐(0)
摘要:题意: 有n(n≤50000)支队伍参加了两场比赛,分别有两个排名。现在要求输出总排名,如果对任意m,在两个排名的前m个队伍都相同,那么在总排名前m个队伍就是这些队伍。其它情况按字典序排。Solution: 简单题。 先map定位每个队伍在第一个排名中的位置。从第二个排名的第一个开始,找到最小... 阅读全文
posted @ 2015-07-24 14:53 keambar 阅读(220) 评论(0) 推荐(0)
摘要:# SGU 280.Trade centers 解题报告###题意:n(k,那么p需要在x或它的父亲中建造市场,要么其实他已经被它的兄弟子树覆盖。这个可以通过判断$max(f[p])+min(f[p])+2$是否小于等于2\*k+1来判断。如果x的子树全部被覆盖了,那么$f[x] = min(f[p... 阅读全文
posted @ 2015-07-21 09:37 keambar 阅读(406) 评论(0) 推荐(0)
摘要:###题意:有n(n#include #include using namespace std;const int N = 501;int link[N], vis[N];int G[N][N],ans[N];int n, mid;bool DFS ( int x ){ for ( int i... 阅读全文
posted @ 2015-07-20 20:54 keambar 阅读(536) 评论(0) 推荐(0)
摘要:Problem A:实际上对于一段数字假设和为k,每次取较大的m个进行t次减一操作,最多减去的是min(m*t,k).明白了这个结论就可以直接二分答案了。#include #define LL long longusing namespace std;LL A, B, n;LL l, t, m, a... 阅读全文
posted @ 2015-07-20 16:24 keambar 阅读(254) 评论(0) 推荐(0)
摘要:Solution: 根据树的遍历道的时间给树的节点编号,记录下进入节点和退出节点的时间。这个时间区间覆盖了这个节点的所有子树,可以当做连续的区间利用线段树进行操作。/* 线段树*/#pragma comment(linker, "/STACK:102400000,102400000")... 阅读全文
posted @ 2015-07-20 15:59 keambar 阅读(233) 评论(0) 推荐(0)
摘要:题意: 有n(#include #include using namespace std;const int N = 209;bitset a[N], mask[N];int base[N];int Gauss ( int n ){ for ( int i = 1; i > n; fo... 阅读全文
posted @ 2015-07-19 20:19 keambar 阅读(259) 评论(0) 推荐(0)
摘要:Solution: 假设已经选了所有的点。 如果从中删掉一个点,那么其它所有点的分值只可能减少或者不变。 如果要使若干步删除后最小的分值变大,那么删掉的点集中肯定要包含当前分值最小的点。 所以每次删掉一个点都记录一次最大值。取最大的情况输出就好。#include using names... 阅读全文
posted @ 2015-06-29 22:43 keambar 阅读(532) 评论(0) 推荐(0)
摘要:Solution: 比较好的图论的题。 要做这一题,首先要分析love关系和hate关系中,love关系具有传递性。更关键的一点,hate关系是不能成奇环的。 看到没有奇环很自然想到二分图的特性。 那么当前的任务是先二分染色,判断给定的边是否有冲突,并且缩点。 假设缩完点后图中只身下k个点... 阅读全文
posted @ 2015-06-28 21:10 keambar 阅读(561) 评论(0) 推荐(0)
摘要:题意: 给出长度为n(s[i-1]的位置,最优一定是删除s[i-1]的.累计次数t. 同时对新得到的数同样处理,这里可以只用一个循环.如果用c++ string的话更加方便. 一直处理到t==k,或者没有满足条件的位置。 如果最后删除的次数t#include using namespace... 阅读全文
posted @ 2015-06-24 17:22 keambar 阅读(290) 评论(0) 推荐(0)
摘要:题意: 给出n(<=1000)条线段的长度ai(<=10^500),输出任意三条能组成三角形的边.没有输出3个0.Solution: 简单题.只是要处理高精度. java大法好.import java.util.*;import java.math.*;public class Soluti... 阅读全文
posted @ 2015-06-24 00:16 keambar 阅读(175) 评论(0) 推荐(0)
摘要:题意: 给n(<=250)条水平网格,然后在上面放k棋子,每行每列都只能放一个。求方法总数。Solution: 简单的DP, 只要对给出的水平长度排个序就很容易处理了。 需要用到高精度。偷懒用java写了import java.util.*;import java.math.*;publi... 阅读全文
posted @ 2015-06-21 13:14 keambar 阅读(233) 评论(0) 推荐(0)
摘要:题意: 有2*n-1个黑色和白色的珠子组成的环形项链,求至少需要多少颗黑色珠子才能使任意排列的项链中都存在两个黑珠间有n个珠子. (2*n-1using namespace std;int n, ans;int gcd( int a, int b ){ return b == 0 ? a... 阅读全文
posted @ 2015-06-20 12:45 keambar 阅读(296) 评论(0) 推荐(0)
摘要:The Game Of ParitySolution: 这个题只需要分类讨论就可以解决。 先分别统计奇数和偶数的个数。 然后判断谁走最后一步,如果走最后一步时候同时有偶数和奇数,那么走最后一步的赢。如果没有呢,就看剩下的是奇数还是偶数,是偶数不用说,是奇数看剩奇数个还是偶数个。 针对这几... 阅读全文
posted @ 2015-06-18 22:49 keambar 阅读(339) 评论(0) 推荐(0)
摘要:Looksery PartySolution: 仔细分析一下会发现每个人都会发一条消息给自己这个条件非常重要! 这个条件保证了一定会有解,而且解法也要从这里入手。 当我们拿到一个猜测的答案序列的时候,假设这个序列没有0,那我们一个人都不需要邀请。 存在0的时候先邀请答案是0的人,然后对... 阅读全文
posted @ 2015-06-18 21:41 keambar 阅读(194) 评论(0) 推荐(0)
摘要:Problem E.GukiZ and GukiZianaSolution: 先分成N=sqrt(n)块,然后对这N块进行排序。 利用二分查找确定最前面和最后面的位置。 #include using namespace std;typedef long long ll;vector s[100... 阅读全文
posted @ 2015-06-15 22:03 keambar 阅读(458) 评论(0) 推荐(1)
摘要:Problem D.GukiZ and Binary OperationsSolution 一位一位考虑,就是求一个二进制序列有连续的1的种类数和没有连续的1的种类数。 没有连续的1的二进制序列的数目满足f[i]=f[i-1]+f[i-2],恰好是斐波那契数列。 数据范围在10^18,用矩阵... 阅读全文
posted @ 2015-06-15 16:31 keambar 阅读(789) 评论(5) 推荐(1)
摘要:Problem C.GukiZ hates BoxesSolution: 假设最后一个非零的位置为K,所有位置上的和为S 那么答案的范围在[K+1,K+S]. 二分这个答案ans,然后对每个人尽量在ans时间内搬最多的砖.可以得出至少需要多少个人才能搬完.这个可以在O(n)的时间内利用贪心... 阅读全文
posted @ 2015-06-15 13:35 keambar 阅读(661) 评论(0) 推荐(0)

1 2 3 4 5 ··· 9 下一页