自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ProLights的博客

Someday, you can program the lights.

  • 博客(17)
  • 收藏
  • 关注

原创 大一,流光,清零

人生天地之间,若白驹之过隙,忽然而已。大一又飞逝而去,但还好并未虚度光阴,俯看这一年,多多少少有所收获,也遭遇了一 些失败。大一是大学的起点, 将奠定接下来几年的大致走向,幸运的是, 在这期间我并没有彷徨与迷茫,因为我是带着明确的目的 来的这所学校。我知道我在这期间该去收获些什么。 大一的时候带着高中的热情踏入校园, 寻找着梦想的足迹。大学是新的的起点,一切都是新的开始, 要以一个既要仰望星空又要 脚踏实地的姿势,开始一段新的旅程。...... 程序该被他的内部逻辑而非外部表现所指引,我们所钟爱的

2016-08-27 14:32:04 1079 1

原创 AIM Tech Round 3 (Div. 2) D. Recover the String 构造、贪心、多坑、WA162

构造、贪心、多坑、WA162 首先用杨辉三角求组合数打个表, 然后匹配一下找出 cnt11, cnt00,也就是1、0的个数 //这个做法比较暴力了嘿嘿 -_-|| 然后如果 (a01 + a10 != cnt00*cnt11) 则没有答案 否则 初始是 000000111111这样的 然后每次if(a10 >= lef0) ...... 这样就是优先搞出大的10, 因为这个时候后面的0比较多 第一次 a10 >= lef0 就把 一个1提到最前面 a10 -= lef0, 否则是0 lef0--, 然

2016-08-26 23:59:49 1356 1

原创 AIM Tech Round 3 (Div. 2) C. Letters Cyclic Shift 贪心、字典序

贪心、字典序 必须改一个子串使得得到的新串字典序最小 所以从左往右改第一个不是a的, 然后连着的都要改直到碰到一个a为止 但是exactly one non-empty substring 所以全是a的时候也要改, 把最后一个a改成 z

2016-08-26 23:26:10 932

原创 AIM Tech Round 3 (Div. 2) B. Checkpoints 排序、讨论

排序、讨论 if(a < val[0]) ans = val[n - 2] - a; else if(a > val[n - 1]) ans = a - val[1]; else 1 : min(ans舍去val[0], ans舍去val[n-1]) 处理的时候注意 a > val[0] && a < val[1] 和 a < val[n-1] && a > val[n-2 ]的情况 此外就是 n == 1的时候了

2016-08-26 23:09:01 887

原创 Codeforces Round #362 (Div. 2) C. Lorenzo Von Matterhorn LCA(最近公共祖先)

LCA(最近公共祖先) 在有根树中,找出某两个结点u和v最近的公共祖先(或者说,离树根最远的公共祖先)。 类似于这样来访问 ...... 每次修改的时候直接修改就行 1e18 -> 2^63次所以每次 2*63*q == 1e5 复杂度 O(2*63*n) 此外对于 map<pair<LL, LL>, LL> mpt;//map tree 和 map<LL, map<LL, LL> > mpt;//map tree 前面用 Codeforces上的数据做了测试, 这两种写法时间上是差不多的, 然而在空间

2016-08-23 23:29:01 1255 1

原创 Codeforces Round #362 (Div. 2) B. Barnicle 科学记数法、表达式处理

处理科学计算法的表达式 找到 " . " 和 " e " 的位置, 然后读清题目的条件就好了 a and b contain no leading zeros and d contains no trailing zeros (but may be equal to 0). Also, b can not be non-zero if a is zero.

2016-08-23 23:05:39 728

原创 Petrozavodsk Winter-2013. Ural FU Contest Problem D. Five Palindromes manacher、一个串切割成5个回文子串、优化

manacher、一个串切割成5个回文子串、优化 第一次使用manacher 嘿嘿☺☺ 为了方便处理奇偶的情况, 我们把 区间 [ i , j ] 的回文子串半径保存在 len[ i + j ] 里, if(len[ i + j ] >= (j - i)/2 + 1) 则[ i , j ] 为回文串 可以O(n)的处理出len 所有中心的回文子串长度 这里先跑一边 manacher(n) 得到 len[]数组 然后O(n) 的预处理出 第一个字符串的右端点 i,放在一个队列里 并且O(n) 的预处理出 最

2016-08-19 23:38:40 1473 2

原创 Gym 100952E E. Arrange Teams dfs、剪枝

dfs、剪枝 首先用 pai[][]布尔数组双向的记录 那些 pair 然后void dfs(int k) 表示当前正在处理 队伍 k, 然后遍历 所有 i, j 如果没有访问过, 并且满足条件 则dfs(k + 1) 直到顺利的把所以的t个队伍都填进去了, 那一个分枝才ans++; return; 剪枝以后的复杂度不大算的出来, 嘿嘿, 但看数据大小 (1  ≤  n,m  ≤  11) and (1  ≤  t  ≤  10) 这样做一般可以pass the tests

2016-08-11 01:14:29 1017

原创 Gym 100952H Special Palindrome 非递减的回文串、dfs打表、查数列网站OEIS

非递减的回文串、打表 比赛结束后看了下public 的代码就我们队是打表过的, 别人都是正规的过的, ⊙﹏⊙‖∣尴尬 分奇偶用 dfs 搞出非递减的左半边串, 然后求出这个的和 ans[sum + i]++; 对于偶数个的直接dfs, 对于奇数的则枚举mid, 然后依次dfs 然后只打了前ans[50] 及以前的, 因为后面的比较大时间不够的, 所以打出前50的表然后到数列网站 OEIS 查了一下, 还真有,☺☺ 所以把那前250个ans贴到 txt里, 然后写一个中间程序 把这些数据 转换成 printf

2016-08-10 01:43:40 2133 3

原创 Gym 100952D Time to go back 组合学、杨辉三角预处理组合数

组合学 有 n 个礼物, m个朋友, 其中k 个很要好的朋友, 要买 price 大于 d 的礼物 领 price >= d 的礼物个数为 cnt 则如果用 C[cnt][k] * C[n - k][m - k] 则显然不对, 因为这里面前面选的 price >= d的, 后面给普通好朋友选礼物的时候也会选到, 这样总的买的礼物数来说有大量重复了 所以 应该是分步 分类(price >= d 的与 < d 的分开算, 这样就不会相同的礼物选2次了) 首先 C[cnt][k] * C[n

2016-08-10 01:16:49 1861 2

原创 Moscow Subregional 2010 Problem K. KMC Attacks 交互题、队列优化、枚举

交互题 队列优化 用 lCur 和 uCur记录 机器的运行路径, 然后枚举起点就好 其中WA5, 后来发现要记录最大的和最小的 lCur, uCur, 以为可能中间过程越界 然后就开始TLE了尴尬 后来才想到队列优化 因为本来是一个vis[][]布尔数组来记录有没有枚举过那个起点, 但每次要forfor枚举然后用vis[][]判断, 这样可能是 4*1e4步内的化, 可能要接近 4*1e4 * (200 * 200) == 4* 1e8了显然还是超时的 所以队列优化可以 O(n^4)的复杂度降低到 O(

2016-08-10 00:16:20 1133 2

原创 Moscow Subregional 2010 Problem H. Hometask 转化、素数筛选

素数筛选 首先 N^2 被 N!整除 也就是 N 被 (N - 1)! 整除 随意基本上 只要 N不是素数 就可以有除了 N 和 1以外的约束, 所以只要 是素数就是 NO 此外 对于 4 由于 只有 1 2 4所以页数不满足 N 被 (N - 1)!整除, 所以4特殊处理 NO //还好谨慎,顺便打了个表, 不然4的特殊处理可能要WA了以后再发现 0! 是 1 所以 N == 1也满足 1^1 被 1整除 YES 复杂度 O(sqrt(n)) 比赛的时候代码是队友实现的, 所以向

2016-08-09 01:43:00 1086

原创 Moscow Subregional 2010 Problem A. Alien Visit 计算几何、连续圆的总面积

计算几何 计算 一串可能有相交可能有相离的同半径且圆心在同一水平面的圆的总面积 总共是分三类讨论 1、相交, 圆心相距比较远, 相交并且 相交部分在那个菱形里面 2、相交, 圆心相距比较近, 那个菱形在相交部分里面 3、相离, 外离 注意一下精度 然后就是 每次把相交部分算到前一个圆, 然后一次算去就好了 Wrong answer, 然后对圆心排个序就通过了, 本来以为默认就是升序的, 结果是乱序的⊙﹏⊙‖∣ 复杂度 O(n) 这个是队友代码实现的, 所以向队友 nardo 要了AC代码

2016-08-09 01:20:01 994 1

原创 Moscow Subregional 2010 Problem F. Finance 读题、枚举、讨论

读题、枚举、讨论 队友说题目看不懂, 然后我也去看了一段时间, 然后明白了大致意思就开始写了 大概就是 明年也是放4 weeks的假期, 然后每周的工资和 那个part的假期开始前最近的52week的工作周数有关, 就定义工作了52周, 那那个part每周的带薪假就是52 比如样例是输入 2 3 20 21 ,然后输出明年的计划是 1 2 3 5 这里显然是2个parts, 第一个假是3 weeks, 所以这之前的52周里放假4周所以工资为 3 * (52 -4) 第二个假是1 weeks 在第五周,

2016-08-09 00:54:09 1030 2

原创 Moscow Subregional 2010 Problem J. Joke 好题,卡精度卡到爆,大整数类

好题 卡精度 题面很简单 就是求[ x / y ] , 但可以WA到爆,可以WA到怀疑人生, 可以WA到比赛结束, (WA了14发, 才在比赛开始后 2 : 12 Accepted ⊙﹏⊙‖∣) 刚开始的方法是 把 x, y都扩大个 1e9后赋值给long long 但好像有地方溢出了, WA10 然后改成 *1e4 结果 WA24, 然后改成 *1e6 WA10, 然后改成 *1e5 结果 WA28 接着试着想用字符串来写, 还没有写好, 然后队友说可能爆long long了, 然后自己也想了一下, 可能

2016-08-09 00:34:05 1139

原创 UVALive 6915 Leveling Ground 优先队列+map来维护区间最值

//!!!!!! 这个UVALive 的题, 由于少了最后一个换行/*if(T) printf("\n") 或者说 if(kase < T) printf("\n") */, WA了不知道多少发⊙﹏⊙‖∣, 然后把那句代码去掉然后过了,太坑了 把那些花费都 *2, 最后在ans/2.0 类似于Two Pointers的思想 维护区间的sum, 然后移动的时候加上右边多出的一个, 减点左边少掉的那个 然后用优先队列维护区间最值 priority_queue<pair<ll,ll>,vector<pair

2016-08-03 23:45:47 742

原创 UVALive 6910 Cutting Tree 并查集

简单并查集 给出一片森林, 然后执行 1)切断 x和x的父节点的边, // 查询的时候不进行路径压缩, 然后直接 father[ x] = x 2)查询 x, y 是否是相连通的 //分别找x y的根, _find(x) == _find(y) 复杂度 O(n)

2016-08-03 22:54:07 705

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除