自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

sb的博客

不进则退

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

原创 Codeforces Round #436 (Div. 2) F. Cities Excursions

先对每个点dfs一次标记以点i为起点可以到达的点 然后用类似floyd的方法对每个i->j找出i能到的最小的点o并且o有路径能到达j 将o作为i->j的路径的第一个点 然后在这个图上进行倍增 假设有环那么倍增会一直绕着环跑 这种情况判断一下边界就可以了#include <iostream>#include <algorithm>#include <sstream>#include <s

2017-09-30 01:34:15 231

原创 CS Academy Round #50 D.Min Races

贪心 class比它高的肯定是取b尽量小的 class比它低的肯定是取b尽量大的对b倒序 扫一遍 每次插入新的a 假如有比它的大的a就删掉 用这个来代表一场比赛中的第一名 删掉就意味着这个是可以跟他安排在同一场比赛并且都能判定为winner#include <iostream>#include <algorithm>#include <sstream>#include <st

2017-09-28 11:17:18 212

原创 Manthan, Codefest 17 C. Helga Hufflepuff's Cup

树dp 三维状态 dp[i][j][k]表示 点i 的数字状态为j k为已经有的特殊颜色的个数变成一个背包#include <iostream>#include <algorithm>#include <sstream>#include <string>#include <queue>#include <cstdio>#include <map>#include <set>#in

2017-09-25 12:12:41 198

原创 Educational Codeforces Round 29 E. Turn Off The TV

离散一下 然后检查每个点被覆盖多少次 然后再用一个数组来记录被覆盖情况的前缀和#include <iostream>#include <algorithm>#include <sstream>#include <string>#include <queue>#include <cstdio>#include <map>#include <set>#include <utility

2017-09-23 22:02:42 290

原创 CS Academy Round #49 C.Max Substring

首先最大的次数一定是单个字母出现的最大次数记录一下每个字母的出现位置 然后检查以每个字母为首的情况检查是否能增加串的长度 即对于每个相同字母的后面第j位 检查这些字母是否相同 是的话则可以增长#include <iostream>#include <algorithm>#include <sstream>#include <string>#include <queue>#includ

2017-09-21 09:16:57 300

原创 Codeforces Round #435 (Div. 2) E. Mahmoud and Ehab and the function

一开始有很多答案 f0,f1,f2,f3,f4…,fm - n这个我们预处理出来这里是没有绝对值的每次修改l,r 其实只修改了a的总和 假设修改了总值v 那么要求的最小的原式 = abs(v+fj)记录一下改变的总和然后二分一下找最接近的fj#include <iostream>#include <algorithm>#include <sstream>#include <string>

2017-09-20 21:44:13 502

原创 MemSQL Start[c]UP 3.0 - Round 1 E. Desk Disorder

一个点连一条边 考虑把这样的关系分成一块一块的假如自己连向自己 包括自己以及前面连到自己的都无法移动 假如连的是链(假设长度为x) 那么选一个地方为空有x种 假如是环那么只能不动或者所有一起动两种#include <iostream>#include <algorithm>#include <sstream>#include <string>#include <queue>#incl

2017-09-20 20:21:21 263

原创 Codeforces Round #435 (Div. 2) D. Mahmoud and Ehab and the binary string

先改第一个位置的看看是1还是0 然后二分区间询问查找另一个数字的位置#include <iostream>#include <algorithm>#include <sstream>#include <string>#include <queue>#include <cstdio>#include <map>#include <set>#include <utility>#inc

2017-09-20 14:44:07 223

原创 Codeforces Round #435 (Div. 2) C. Mahmoud and Ehab and the xor

首先无解的情况只有n=2,x= 0 ,因为不能有相同的数考虑n>1 构造出n个数满足所以异或起来等于1^1^2^2^3^3……^x 但是不能出现相同的数字数字的要求是<=1e6 但是数据给的都是1e5以下的数 所以可以找到第一个大于1e5的 num = 2^a 构造一个数为x^num^1^2^3^…… (需要注意不能变成0) 剩下的数为1 , 2 , 3 …… 还有num#include

2017-09-20 13:17:54 169

原创 MemSQL Start[c]UP 3.0 - Round 1 D. Third Month Insanity

从第上往下做dfs 把比赛的关系图看成一个二叉树 对于[o][i] 表示在编号为o的比赛中i获胜了 算出所有可能性 把概率加起来 乘上新加的分数就是新加的分数的期望#include <iostream>#include <algorithm>#include <sstream>#include <string>#include <queue>#include <cstdio>#i

2017-09-19 21:44:28 487

原创 Codeforces Round #433 (Div. 1, based on Olympiad of Metropolises) C. Boredom

需要算所有跟查询矩形相交的矩形(两个点组成的) 只要把所有矩形的数量减去不相交的矩形就好了显然不相交的矩形是有在查询矩形的上、下、左、右的两个点组成 但是会有重复的部分即在左上左下右上右下的部分 所以再把答案加回这部分利用主席树查询[l,r]上[d,u]的数有多少个#include <iostream>#include <algorithm>#include <sstream>#incl

2017-09-07 20:13:12 319

原创 Codeforces Round #431 (Div. 2) D. Rooter's Song

确定任意两点x,0 y,0交叉点在x,y x,0去x,y需要时间为y另一个需要x 时间相等才能相碰 y + tx == x + ty 所以 x - tx == y - ty 此时这些note将会相碰这些相碰的note的规律如下 大概就是平移一下 模拟一下平移的操作#include <iostream>#include <algorithm>#include <sstream>

2017-09-02 22:48:33 230

原创 Codeforces Round #430 (Div. 2) E. Nikita and game

一条直径有两端 考虑把直径的端点分为两部分(被直径中点分开) 那么只要维护两端的直径端点就可以了当加入一个新点的时候检查是否更新了直径如果更新了直径那它就会成为直径一端的唯一一个点 然后看他是到左边的那些端点长还是到右边那些端点长 假如是左边那左边的点都是另一端的点 再检查一下到右边的点的距离有没有跟新直径一样的 将它加入另一端的集合如果没更新则检查最大距离是否与直径相同 相同则加

2017-09-01 00:27:14 579

空空如也

空空如也

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

TA关注的人

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