自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 Codeforces 778A String Game

题目大意给定一个基础字符串和一个匹配字符串,以及一个**删除索引**求按照删除索引的顺序,最多删几个字母,使得剩下的字符串中依然包含那个匹配字符串。注意,一个字符被删除后,其他字母的位置不会改变

2017-09-29 15:34:36 515

原创 Codeforces 723D Lakes in Berland

题目大意 给n,m和k,n和m为所给矩阵的高和宽。k是要求最多剩下的湖的数量。 在所给的矩阵中,*代表陆地,.代表水。 湖的定义是一片连续的水(上下左右四个方向),并且水不含边界。 水含边界的情况被成为海。 问最少填多少湖的面积,使得湖的数量减少到k…

2017-09-28 21:49:49 324

原创 POJ3666 Making the Grade & Codeforces 713C

题目大意 给定一个序列,可以变化其中的数字,总代价为|A1 - B1| + |A2 - B2| + … + |AN - BN| 求最少的代价,使这个序列变为单调不严格上升或下降序列#include <cstdio>#include <iostream>#include <algorithm>#define Abs(a) ((a)>0?(a):-(a)) using namespac

2017-09-28 16:53:21 305

原创 Codeforces 274B 【树形DP】

题目大意 给定一棵树,以及树上每个点的权值,每次操作可以将一棵(必须)含有节点1必须包含的子树上所有的点全部加1或减1,求最少几次操作可以将树上全部节点权值变为0

2017-09-27 20:49:38 701

原创 POJ3279 Fliptile 【暴力】

这是一个带状压的暴力Orz 对于每个点,有效的反转次数不会超过2,所以只要求出每个点的反转次数,加上其本身的0/1,再对2取模,就是这个点现在的颜色问题来了,如何求某个点的反转次数呢?可以逆向思维,先把每个点的反转次数存在数组fli中,某个点的反转次数等于其本身反转次数以及上下左右四个点的反转次数之和(能对这个点有影响的只能是其上下左右的点),再加上其本身的颜色编号(0/1)把全部区域变...

2017-09-27 16:19:40 307

原创 Codeforces 853A Planning 【贪心】

题目大意 由于不可抗力什么的所有航班都要推迟k分钟,啊但是每架飞机都已经计划好原来的起飞计划了Orz(输入顺序就是原起飞计划),于是Helen就需要搞一个新的起飞计划。 飞机C每推迟一分钟(相对于原计划)就会花费C_i块钱,并且新的计划中,不允许某架飞机的起飞时间比原计划还要早,而且而且不允许同一分钟内起飞两架飞机 现在求一个最优方案使得花费最少,并且打出这个方案来。

2017-09-26 21:34:02 325

原创 CodeForces 816A Karen and Morning

CodeForces很良心,每个点都给数据,我已经不知道交了多少次了Orz 这题就是看错误点,慢慢加特判,一个一个加,最后总会A的(笑#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>#include <string>using namespace std;const int maxn =

2017-09-26 20:56:09 297

原创 POJ 2762【强联通缩点】【拓扑排序】Going from u to v or from v to u?

题目大意是,判断一个有向图中所有的任意两点x,y,是否满足,从x可以走到y 或者 从y可以走到x很显然,同一个SCC中的所有点一定满足这个条件,当同一个SCC中的所有点要么同时选要么同时不选的时候,就可以缩点了。缩点的方法就是给每个点加一个强联通分量编号(染色),然后tarjan结束后考察每一条边,若某条边的两头不是同一个颜色,就加一条新边。缩点后的图一定是一个DAG(有向无环图),在这张新图上可以

2017-09-25 20:34:58 356

原创 不完全浅析Tarjan求强连通分量(SCC)

定义dfn[]为每个点的时间戳(搜索次序),low[]为每个点的所能追溯到的,最低dfn的祖先的dfn,也就是最浅祖先 证明我真的不会,只能自己YY,不确保说的每句话都是正确的,如果我的分析有错误请一定要指出来!!! 先走dfs。一个有SCC的图一定有环,所以当搜索到一个已经到过的点时,我们就找到了一个环,此时这个环上所有的点一定都强联通(就好比地球是圆的,所以一直沿某个方向是可以回到起点的),

2017-09-25 20:13:26 405 1

原创 Codeforces 1A 【模拟】

拿张纸YY一下就看出来了 ans=⌈n/a⌉∗⌈m/a⌉ans=\lceil n/a\rceil*\lceil m/a \rceil 注意要开longlong#include <cstdio>#include <iostream>#include <cmath>int main() { long long n,m,a; std::cin >> n >> m >> a;

2017-09-25 08:53:07 275

原创 POJ3669 Meteor Shower 流星雨【预处理】【广搜】

这个题有个坑点…就是流星虽然只能炸到300 X 300的区域,但是Bessie可以走到第一象限的任何地方,所以MAXSIZE 开大点吧…#include #include #include #include #include #include #define DEBUG(x) std::cerrconst int MAXM = 50000 + 1;const int MAX

2017-09-24 21:49:56 302

原创 Dijkstra模板

注意几点1.看清楚是有向还是无向图 2.dis初始值设为0x3f3f3f3f可能会不够 还是设为0x7fffffff吧#include &amp;lt;cstdio&amp;gt;#include &amp;lt;queue&amp;gt;#include &amp;lt;cstring&amp;gt;#include &amp;lt;algorithm&amp;gt;const int MAXN = 100000 + 1

2017-09-23 09:26:02 263

原创 Noip2016 愤怒的小鸟 【状压DP】

考虑到n的最多只有18个,可以用二进制来表示状态:f(s)表示消灭s集合的小猪所需要的最小小鸟数量,用0为第i个只猪没有被消灭,1为第i只小猪被消灭了,就像010001010101这样的,最后求的就是111111111111111这样状态的值状态转移方程为 f(S|P[i])=min(f(S|P[i]),f(S)+1)f(S|P[i])=min(f(S|P[i]),f(S)+1)通过枚举

2017-09-23 08:11:45 327

原创 Poj3660 Cow Contest 【传递闭包】

Rank这种东西…根据定义来说就是个体在整体中的排名,那么一定需要知道这个个体和整体的关系才能知道Rank。 比如说,只有知道其他所有人的成绩,才能知道自己的排名是多少 那么问题转化为求有多少个能够 确定和其他所有点的关系 的点 传递闭包跟Floyed基本相同…就是把松弛操作改成了传递关系 需要注意的是,有关系指的是打败和被打败,要有两个判断if(a[i][k] && a[k][j]) a[

2017-09-20 21:31:27 271

原创 POJ3670 Eating Together 【动态规划】【LIS模板】

#include <iostream>#include <cstdio>#include <algorithm>using namespace std;#define debug(x) cerr<<#x<<"="<<x<<endl;const int maxn = 300010;int n, a[maxn], f[maxn], g[maxn],ans,len,ren;int seach

2017-09-20 20:34:28 371

原创 Poj3662 Usaco2008JanSilver Telephone Lines

题目大意 给定N个点P条边的无向图,官方提供k条免费边。求如何去掉免费边,使剩下的边之中最大的边权最小,输出最大的边权这题…最大的最小,很容易想到二分…而且这些边一定构成了最短路。

2017-09-10 21:49:06 415

原创 Poj3661 Usaco2008JanSilver Running

题目大意 奶牛们想要变成更强的运动员,所以Bessie开始了一项N分钟的训练,在每分钟,她可以选择跑步或者休息1整分钟 Bessie所能奔跑的极限距离,取决于她的“疲劳值”,一个一开始是0的值。当她选择在第i分钟奔跑时,她将会跑DiD_i 米,并且她的疲劳值将会增加1,但是这个值不能超过M。如果她选择休息,她的疲劳值将会每分钟减少1点。她直到疲劳值减少到0的时候才能再次开始奔跑。 N分钟的锻炼

2017-09-10 19:32:02 286

原创 Poj3250 Usaco2006Nov银组 Bad Hair Day

问题是求一个数往右边看,在遇到大于等于他本身的之前,有多少个比他小的数转化问题为一个数能被多少个数看到,那么这些的和就是答案用单调栈去处理,把栈里的比当前处理的数要小于等于的全弹掉,剩下的那些就是严格比这个数大的,也就是可以看到这个数的 ans要开long long #include <iostream> #include <cstdio> #include <stack> using n

2017-09-10 17:53:15 219

原创 Noip2016 天天爱跑步【LCA】【差分】

从题目部分分的提示中可以获得很多想法,比如说第六个点树退化成一条链,第九个点所有的s=1,第15个点所有的t=1 然后思考一下,每一条最短路都是一条链,LCA必定存在于每一条链上,每条链可以分为 s-&gt;lca和lca-&gt;t两部分 设deep[i]为i点的深度,dis为S到T最短路 先假设某个w[i]可以看到玩家,那么w[i]满足的等式是 {deep[S]=w[i]+deep[...

2017-09-09 11:52:36 400

原创 Noip2016 组合数问题

虽然说通过组合数递推公式可以看出来C(i,j)=C(i−1,j−1)+C(i−1,j)C(i,j)=C(i-1,j-1)+C(i-1,j) 就是杨辉三角公式,但是还是有一个很关键的差别…就是当j=1时这个公式不太管用…比如说C13C_3^1 表示从三个东西里面选一个,有三种选法,这个就需要提前处理了… 只统计每一列满足要求的数的和,求第n行第m列时只要把第n行的前m列加起来就行了#include

2017-09-09 09:48:27 251

原创 Noip2015 斗地主【搜索】【贪心】

从题目中可以看出花色无用,并且出牌顺序无关紧要、 那么一个贪心的想法是少出单牌,多出顺子由于先出其他的牌会影响到出顺子,所以先去枚举各种出顺子的姿势,然后在每一次出某种顺子的状态下再去出其他的炸弹啊三带一什么的 用四个变量a1 a2 a3 a4 表示组合出 单牌,对牌,三带一/二,炸弹 的数量 回溯时记得把状态清掉(就是把那些本次出的牌再加回来),这样就不会影响到其他状态 代码…等待填坑

2017-09-05 15:57:13 353

空空如也

空空如也

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

TA关注的人

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