
CodeForces
MissAnnLucky
Cease to struggle cease to live.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CodeForces 320 B. Ping-Pong DFS BFS 弗洛伊德算法
还是读题理解题意是个大问题,这个题告诉你不断的告诉你一些区间,然后如果两个区间(a,b)(c,d)满足 c a dorc b d. 那么这两个区间就是连通的,如果区间1和2 连通,区间2和3连通,那么1和3也是连通的。这样在每一次询问时,用一个dfs()看能不能从区间x到达区间y.值得注意的细节是因为存储区间是从t[0]开始的,这样应该是dfs(x-1,y-1)。 #include #inc原创 2013-08-01 13:26:47 · 1057 阅读 · 0 评论 -
codeforces 283A - Cows and Sequence 简单数据结构模拟
第一次做时因为是求平均值,所以只需知道sum和元素个数rear就行了。3个操作,第一个,对个数没有影响,直接sum+=ki*ai,然后求平均就行了;第三个操作,直接用sum-最后一个数,rear--,求平均;第二个操作,sum+ki,rear++,求平均。所以只需时刻更新最后一个元素可以,交了好几遍WA。比赛完后看了别人的结题报告才知道,只是单纯的记录最后一个元素是不行的,在删除最后一个元素时,有原创 2013-08-01 10:57:30 · 1125 阅读 · 0 评论 -
CodeForces 332 B. Maximum Absurdity 动规 求和最大的两段连续子列
前面做过好几个最大连续子列的问题,这个题是找两个已知长度的子列,满足这两段的和最大这一条件。核心是动规以及树状数组。 先说一下树状数组:第一个是sum[i]=sum[i-1]+num[i];以及seq[i]=sum[i+k-1]-sum[i-1];seq[i]表示i到i+k-1的和。 动规:dp[i]=a表示在以第i到n-k+1为起点的长度为k的子列中以a为起点的最大。状态转移方程是 若se原创 2013-08-01 18:06:46 · 843 阅读 · 0 评论 -
codeforces 34D - Road Map DFS
把相关联的两个点记下来,然后dfs #include #include #include #include #include #define MAXN 50010 using namespace std; vectorst[MAXN]; int n,r1,r2,ans[MAXN],vis[MAXN]; void dfs(int cur) { if(vis[cur]) return ;原创 2013-08-10 15:05:31 · 729 阅读 · 0 评论 -
Codeforces 245H 回文 DP
看了解题报告才弄清楚状态转移方程: Let isPal[i][j] be 1 if s[i...j] is palindrome, otherwise, set it 0. Let's define dp[i][j] to be number of palindrome substrings of s[i...j]. Let's calculate isPal[i][j] and原创 2013-08-18 13:06:41 · 610 阅读 · 0 评论 -
codeforces 340B 几何 叉积
转载于http://www.cnblogs.com/zstu-abc/p/3293327.html 题意:平面上n个点(n,问任意四个点组成的四边形(保证四条边不相交)的最大面积是多少。 分析: 1、第一思路是枚举四个点,以O(n4)的算法妥妥超时。 2、以下思路源自官方题解 以O(n2)枚举每一条边,以这条边作为四边形的对角线(注意:这里所说的对角线是指把四转载 2013-09-02 20:47:53 · 707 阅读 · 0 评论 -
Codeforces 358B - Dima and Text Messages 字符串
考虑到每个字符串的长度不确定,而总长度是确定的,所以用strcat连接每个串+" 改用string存每个字符串。 AC后去掉check()函数,发现也是对的。 #include #include #include #include #define MAXN 100000+12 using namespace std; char temp[MA原创 2013-10-26 11:46:36 · 1008 阅读 · 0 评论 -
Codeforces 358A - Dima and Continuous Line 暴力+数学
自己做时没思路,看了题解,,,,,,恍然大悟,竟然是个O(n^2)的复杂度。 摘自题解: #include #include #include #include using namespace std; int main() { // freopen("in.txt","r",stdin); int n,num[1000+10]; scan原创 2013-10-26 13:12:39 · 1550 阅读 · 0 评论