关闭

[置顶] ACM模板整理(精心准备,持续更新中)

树状数组篇 单点更新,区间查询 #define lowbit(x) (x)&(-x) const int maxn=10005; int sum[10005]; void add(int x,int val) { while(x<maxn) { sum[x]+=val; x+=lowbit(x); } } int query(int x) {...
阅读(68) 评论(0)

[置顶] Codeforces好题专栏(前三道)

为了上分,博主打算开一篇博客来记录下前三道遇到的好题....
阅读(91) 评论(0)

2017哈尔滨ccpc部分题解

A题思路:最主要的点就是要得出这个结论: 设p[i]为以i为中心的回文半径-1,那么如果满足j-i<=min(p[i],p[j]),那么j就可以和i组成究极回文串。 所以由这个式子可以看出三点: 1,i < j 2,j-i < p[i] 3,j-i j+p[j],所以算可以和i组成究极回文串的时候得将所有满足j+p[j]的j算进去,再计算满足小于i+p[i...
阅读(13) 评论(0)

2013长春regional题目详解

和队友打模拟赛遗憾的打铁了,在这里总结一下题,还是太菜了。。 题目难度由易到难的顺序讲解。 C题队友wa了4发后A了,一开始题意都不太理解,但实际上就是求N个数组成的所有数中的就行了。仔细想想其实题目不是很难理解。 代码如下:#include #include #include #include using name...
阅读(14) 评论(0)

Codeforces Round #439 (Div. 2)E详解

题意:给出一个n行m列的矩形,现在有q个询问,输入t,r1,c1,r2,c2. 当t=1时,在r1行c1列格子上左边界到r2行c2列的下右边界划一个矩形边界。 当t=2时,将r1行c1列格子上左边界到r2行c2列的下右边界的矩形矩形边界删掉。 当t=3时,问能不能从r1行c1列这个格子到r2行c2列。能输出YES,否则输出NO. 思路:一开始想到的利用前缀和,但维护前缀和不知道怎么维护,从来...
阅读(40) 评论(0)

Codeforces Round #440 D详解

D. Something with XOR Queries 题意:现在有一个长度为n的序列p,该序列是0到n-1的数的排列。现在有一个序列b,它满足p[b[i]]=i.询问是输入两个值x,y。它会给出p[x]^b[y]的值,现在你最多可以询问2*n次,来判断出p的序列的每个元素,并输出。但现在即使你每个都问一遍都会有不确定因素,因此你还要输出有几个序列是满足回答的。。 思路:没想到这么简单,一开...
阅读(43) 评论(0)

Codeforces Round #442 (Div. 2)D详解

D. Olya and Energy Drinks 题意:给出n行m列的地图,.是可走的位置,#是不能走的位置,你1s可以沿一个方向走1到k个格子,问你从(x1,y1)到(x2,y2)的花的最小时间。 思路:将以前的走迷宫改一下就不会做了。。其实还是一样的bfs。但是要将vis[x][y] 从原来判断这个点是不是走过改成是不是由这个方向走过,如果由这个方向走过的话,你还枚举这个方向,其实是多于的...
阅读(45) 评论(0)

Codeforces Round #443 (Div. 2)D. Teams Formation详解

题意:...
阅读(39) 评论(0)

hdu5995 H - Guessing the Dice Roll

一道经典题目(套路),题意:有n个人都给出长度为m的序列,有一个骰子会一直摇,直到最后长度为m的序列出现了这n个人给出的序列,那个人就算赢了,求所有人赢的概率。 思路:首先用AC自动机存各个状态,用建立fail指针的方法来建立状态转移。然后用高斯消元建立方程组,方程解即是答案。 那么如何建立方程组呢。设结点为i,to=next[i][j],next[i][j]意为i状态摇到j后转移到的状态, 则...
阅读(50) 评论(0)

Codeforces Round #437B,C,D,E题目详解

B题题意:给你一个答案A,让你推出用M种硬币组成N元钱的方案数为A。 思路:构造题,其实我们很容易知道用1和2就可以构造出所有的数,然后再算一算就会发现构造出的数字的方案是有规律的。读者可以自己思考思考。#include using namespace std; int main() { int A; cin >> A; cout << 2 * A -...
阅读(141) 评论(0)

Manthan, Codefest 17 B-F题目详解

被这套题搞的突然失去梦想。。 B题题意:给你三个值p,q,r,在一段序列上选取3个值ai,aj,ak(1<=i<=j<=k<=n)使得ai*p+aj *q+ak *r最大。 思路:做的时候想歪了,但弄懂了一个之前一直疑惑的问题。。之后认真思考这道题时发现不是很难想,首先博主做的时候认定为一道dp题。 dp转移方程为:dp[j][i] = max(dp[j - 1][i], dp[j][i -...
阅读(129) 评论(6)

Codeforces Round #436 (Div. 2)E,F详解

鉴于太多人把D做出来了,实际上D就是道模拟简单题,所以本篇博客并没有D的题解。如果有需要的读者可以联系博主,博主会很热心的为你解释的(笑)。。 E题题解:Polycarp家着火了。。他家里有n个值钱的东西,每一个东西有一个营救需要的时间和一个烧毁需要的时间。问Polycarp能救出的东西的最大价值为多少,并输出营救顺序。 思路:裸的01背包问题。。如果不明白01背包问题可以看看紫书的动规专题。...
阅读(212) 评论(0)

Codeforces Round #435 (Div. 2)C,D,E,F题目详解

C题题意:用n个不同的数异或变成x。 思路:博主一开始的想法是一个偶数和它相邻的奇数异或值为1,那么我只要构造出许多个1,然后判断有奇数个1还是偶数个1就行了。如果是偶数个1,那么相当于前面异或值为0了,那么在加一个x就行了。同理奇数个1相当于前面异或值为1,那么最后一个数为x-1或者x+1(需判断一下哪个可行)。 依然觉得想法可行,但有许多细节要注意。下面介绍一个思路更加清晰的想法。 思路2...
阅读(255) 评论(0)

Codeforces Round #430(Div.2) C,D,E题目详解

C题题意:询问从1(根节点)到其他所有节点的最大gcd是多少,你可以在该路径中将其中一个节点的值改为0或者一个都不改来影响最终的结果,所有节点的最大gcd分开考虑。 思路:一开始想到dp,但从他的根到孩子并没有什么联接性,满足根的gcd最大并不代表同样孩子的gcd最大。所以不能dp。 换种简单的思路,从上而下,将所有结果都保存下来,然后加上该点的值的影响,看最终结果哪个最大。一个简单的dfs即...
阅读(55) 评论(0)

Codeforces Round #433(Div.2) C,D,E题目详解

C题题意:有n台飞机,起飞时间依次从1到n,但是现在会延期k分钟,也就是现在允许飞行的时间为k+1到k+n,每台飞机延期1分钟会有一个代价ci,并且不允许提前飞行,问如何安排飞行顺序使得代价最小。 思路:对于每台飞机来说,延期代价有大有小,那么延期对于代价大的来说,会影响更大,所以应该让代价大的飞机先选飞行时间。 按照上面的思路,先按照代价排序,然后让每个飞机都从自己原先起飞的时间往后遍历,看哪...
阅读(336) 评论(1)
29条 共2页1 2 下一页 尾页
    个人资料
    • 访问:3001次
    • 积分:318
    • 等级:
    • 排名:千里之外
    • 原创:28篇
    • 转载:1篇
    • 译文:0篇
    • 评论:9条
    文章分类
    最新评论