
coderforces
文章平均质量分 80
羁绊残阳
四川大学计算机科学与技术
展开
-
coderforces #284(Div.2)
背景:第一次打coderforces,只出了a,b两题·,c题在会长指导下过。A:水B:简单字符串处理C:题意是从A到B,不能走交叉点,求A到B最少要走的步数,等价于求与线段AB相交的直线个数。证明:由于从A到B不能走直线交叉点,所以必须跨过其线段间的所有直线,每条直线只走一步就是最少。解法:由于告诉了所有直线方程,只需根据若两点在直线异侧则直线在线段间。原创 2015-01-04 20:13:31 · 886 阅读 · 0 评论 -
#Codeforces Round #341 (Div. 2)
@(E ACMer)C Wet Shark and Flowers概率容斥E Wet Shark and Blocksdp 矩阵快速幂C. Wet Shark and Flowers(概率+容斥)题意:先给一个素数pp,有nn个人,围成一圈,每个人有会等概率的取自己区间中的一个数,如果两个相邻的人的数的乘积能被p整除,那么这两个人就会一人获得1000元,问你整个圈的人期望得到的钱是多少?原创 2016-02-13 16:05:44 · 368 阅读 · 1 评论 -
Codeforces 598E Chocolate Bar (dp)
@(K ACMer) 题意: 给你一个n∗mn*m的矩形,你每次可以横着或者竖着切割,每次切割的消耗是切割长度的平方,要得到总共面积为k的一个矩形集合,需要的最少切割消耗是多少? 分析: 很容易定义一个dp[x][y][num]dp[x][y][num],表示切割一个x∗yx *y的矩阵 来得到面积为k的矩形集合所需要对最小消耗. 也很容易设置转移,分为对切水平切和竖直切两种情况来转移.原创 2015-11-24 16:17:22 · 706 阅读 · 0 评论 -
Codeforces Round #327 (Div. 2)
@(K ACMer)A Wizards DuelB RebrandingD Chip n Dale Rescue Rangers二分 物理E Three StatesA. Wizards’ Duel题意说了一大堆…就是一个简单地运算. B. Rebranding题意 给你一个字符串,然后有m个操作,形如:a ba\ \ b这样的二元组,就是把字符串中为a的换为b,为b的换为a.原创 2015-10-28 15:53:27 · 437 阅读 · 0 评论 -
Codeforces #Round 321 Div2
@(K ACMer) A. Kefa and First Steps题意: 求连续最长非递减子序列的长度. 分析: 从左到右扫描即可.这里差点理解成经典DP题LIS. 这里复习一下LIS: LIS有两种方法,一种是比较直观地O(n2)O(n^2)的方法. 定义:dp[i]为以i结尾的LIS的长度,有状态转移方程: dp[i] = max(dp[j]+1 | a[j]<a[i],j原创 2015-10-11 00:56:58 · 423 阅读 · 0 评论 -
Codeforces Round #320 Div 2
@(K ACMer) [toc]A . Raising Bacteria(位运算)题意:给你一个细菌繁殖之后的数目x,问你,该这x个细菌最少是由多少个细菌繁殖而来. 分析:就是找到所有2的幂次加数,位运算即可. Code#include <cstdio>#include <iostream>#include <set>#include <map>#include <algorithm>原创 2015-09-22 01:07:05 · 423 阅读 · 0 评论 -
Codeforces Round #274 (Div. 2) d Long Jumps 尺取法 + set
题意:给一个长度为l(l < 10910^9)的尺子,上面有n(n < 10510^5)个已经存在的刻度标记,给定两个长度x和y,问你至少要添加哪些标记才能度量出x和y? 分析:显然最坏的情况是上面的刻度既不能度量出x也不能度量出y,这里应该先判断一下能否出x和y,如果都能就直接输出0,只有x就直接输出y,只有y就直接输出x.如果都没有进一步讨论了. 开始想得是对于每一个已经存在的刻度i,分别考原创 2015-08-17 20:29:45 · 628 阅读 · 0 评论 -
Codeforces Round #313 (Div. 2) 解题报告
A. Currency System in Geraldion:题意:有n中不同面额的纸币,问用这些纸币所不能加和到的值的最小值。思路:显然如果这些纸币的最小钱为1的话,它就可以组成任意面额。如果这些纸币的最小值大于1,那么它所不能组成的最小面额就是1.所以自学求最小值即可。我的代码:#include <set>#include <map>#include <cmath>#includ原创 2015-07-24 11:30:07 · 585 阅读 · 0 评论 -
Codeforces #200(div.2) 模拟练习赛
A题:题意:一行磁铁,同性相斥,找到这行磁铁可以分为多少块思路:边读边计算,读到和上一次不一样的就加1(第一组数据特判)手速题然而我没有把思路理清楚再写,比队友满了太多=_+。代码:#include <set>#include <map>#include <cmath>#include <stack>#include <queue>#include <string>#includ原创 2015-05-25 20:50:37 · 476 阅读 · 0 评论 -
Coderforces Round #296(DIV.2)
A题:主要是没有注意到数据有10的12次方那么大,中间要善用取余。B题:一道思想很巧妙的题,暴力方法O(n^2)超时,用set优化了查找之后O(nlogn)超时,最后无计可施看答案。。。思路:这个最大的巧妙点是字符串虽然可以很长,但是元素是由小写字母组成的只有26种,而上下不相同的字母组成最多只有26*26种,所以用一个C[26][26]来记录每一种可能不同字母对出现的位置,这样如果有C[原创 2015-03-31 16:42:17 · 561 阅读 · 0 评论 -
Codeforces Round #354 (Div. 2) D
题意: 给你nn个数,用这nn个数来建立二叉搜索树,问你每次插入一个数时,它的父亲节点是哪一个? 分析: 首先要注意本题的nn个数都是不同的。 容易观察到每次插入节点时,它的父亲节点要么是比它大的数中,距它最近的节点rr的左儿子,要么是比它小的数中距离它最近的节点ll的右儿子。 这里的主要问题是到底是rr和ll哪一个的儿子? 首先我们应该知道这rr和ll一定是相互连接的,因为假设它们不相原创 2016-05-23 21:16:27 · 391 阅读 · 0 评论