自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qwesde

勿忘初心

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

原创 Codeforces Round #330 (Div. 2)C. Warrior and Archer(博弈,贪心)

题目链接 题意:n个数,俩人轮流删除数,使得最后剩下2个,一个希望俩数之间的距离最小,一个希望剩下的距离最大 解答:证明见官方题解,假设最后剩下[L,R ]的区间,那么一定是一个人删了[L,R]之间的数,另一个删除了[L,R]之外的数字。#include<bits/stdc++.h>using namespace std;#define LL long long#define pb pus

2015-11-20 17:43:58 567

原创 Codeforces Round #330 (Div. 2)D. Max and Bike (二分)

题目链接 题意:有一个轮子做匀速运动。然后轮子上有一点,可以在任何位置,现在问,这一点从s位置到f位置的最小时间, 解法:二分时间t,然后轮子装过的角度是v*t%2*pi*r 然后在转化为弧度。轮子走对称的应该时间少,总距离就是v*t+2*r*sin(angle)#include<bits/stdc++.h>using namespace std;#define LL long long

2015-11-20 10:17:36 560

原创 2015 NOIP day2 t2 信息传递 (tarjan 连通图)

题目链接 题意:略: 解答:缩点后,计算连通分量里 的点数 ,但是最后一个case无法通过。貌似是爆栈了#pragma comment(linker, "/STACK:1024000000,1024000000")#include<cstdio>#include<algorithm>#include<cstring>#include<vector>using namespace s

2015-11-19 20:57:38 830

原创 2015 NOIP day1 t1 神奇的幻方 (简单模拟)

题目链接 题意:略 解答:直接模拟#include<cstdio>#include<algorithm>using namespace std;#define LL long long#define pb push_back#define X first#define Y second#define cl(a,b) memset(a,b,sizeof(a))typedef pai

2015-11-19 20:11:16 854

原创 Codeforces Round #286 (Div. 1) D. Mr. Kitayuta's Colorful Graph (并查集 STL)

题意链接 题意:给出一个图,告诉每个点之间的边的颜色(有重边),问你任意两点之间有多少边连接。 解法:并查集处理,f[x][c]:表示与x 链接且颜色是c的顶点y AAA:姿势不对 会超时,正确的姿势是unordered_map,其暴力遍历的时候要循环小的#include<bits/stdc++.h>using namespace std;#define LL long long#de

2015-11-18 18:40:55 401

原创 Educational Codeforces Round 1 E. Chocolate Bar(记忆化搜索)

题目链接 题意:在n*m的矩形切出面积是k 解法:记忆化搜索#include<bits/stdc++.h>using namespace std;#define LL long long#define pb push_back#define X first#define Y second#define cl(a,b) memset(a,b,sizeof(a))typedef pa

2015-11-18 10:06:39 415

原创 Educational Codeforces Round 1C. Nearest vectors(极角排序+long double 精度)

题目链接 题意:给你一堆的向量,问你向量之间的夹角最小的是那一对。 解法:极角排序,然后枚举相邻的一对就可以啦,但是坑爹的是double精度不够,使用long double 读入使用cin。。。#include<bits/stdc++.h>using namespace std;#define LL long long#define pb push_back#define X firs

2015-11-16 14:52:37 454

原创 Codeforces Round #331 (Div. 2)C. Wilbur and Points(模拟+STL)

题目链接 题意:就是给出一组点,然后问如果Xa>=Xb&&Ya>=Yb的话,那么a点的编号必须必b点大,同时,点的权值要满足给出的w序列。 解法:先判断给出的w,与点的w的是不是能完全重合,不能的话就是no 然后,我们就按照给出的w顺序找出点的顺序,然后判断一下即可 AAA:比赛时候貌似又读错了题意,,昨天状态太差。。。#include<bits/stdc++.h>using names

2015-11-16 14:00:00 407

原创 Codeforces Round #331 (Div. 2)B. Wilbur and Array(规律)

题目链接 题意:有一个数组起始每一位都是0,然后你有两种操作,每次选择一个位置i,重i到n位置对应的数,都加一或者减一。问最小步数。 解法:考虑到前面的一个数操作必然引起后面的数变化,所以累加b数组相邻之间的差。#include<bits/stdc++.h>using namespace std;#define LL long long#define pb push_back#defi

2015-11-16 11:13:23 389

原创 Codeforces Round #331 (Div. 2)A. Wilbur and Swimming Pool(简单计算)

题目链接 题意:给出n个点,问能否计算出以这n(n<=4)个点为顶点的矩形面积。 解法:找对角线的点,计算即可 悲剧:读题不仔细害死人= =。夜里做的时候没有看到数据的输入保证,写了很多判断平行,,,唉,下次读题要仔细。#include<bits/stdc++.h>using namespace std;#define LL long long#define pb push_back

2015-11-16 11:08:06 348

原创 Educational Codeforces Round 1 D. Igor In the Museum(BFS)

题目链接 题意:给你一个图,再给你几个点,然后问这个点能到达的*有几个。 解答:BFS,为了避免超时,我们BFS某一个点的时候,可以把这个点到达的’.’点边上序号,最后记下这个序号对应的能到达的墙数,这样我们读入一个点,如果已经算出,就不用再BFS了。#include<bits/stdc++.h>using namespace std;#define LL long long#defin

2015-11-16 03:03:03 358

原创 Educational Codeforces Round 1 B. Queries on a String(字符串简单操作)

题目链接 题意:给出一个字符串,再给出n个操作,每个操作是把区间[l,r]循环右移k位 解法:模拟#include<bits/stdc++.h>using namespace std;#define LL long long#define pb push_back#define X first#define Y second#define cl(a,b) memset(a,b,si

2015-11-16 02:58:55 414

原创 Educational Codeforces Round 1 A. Tricky Sum(简单模拟求和)

题目链接 题意:求出1-n的和,但是要去掉是2的整次幂的数 解法:直接模拟即可#include<bits/stdc++.h>using namespace std;#define LL long long#define pb push_back#define X first#define Y second#define cl(a,b) memset(a,b,sizeof(a))ty

2015-11-16 02:56:06 313

原创 BestCoder Round #62 (div.2)Clarke and five-pointed star(极角排序,判断五边形)

题目链接 题意:给你五个点,问这五个点是否可以组成正五边形(正五角星,等价于正五边形)。 解答:先极角排序,(让五个点按照顺时针或者逆时针的顺序)然后我们计算五条边是不是一样,然后在看对角线是不是都一样。#include<cstdio>#include<iostream>#include<algorithm>#include<cmath>#include<set>#include<m

2015-11-15 11:17:48 429

原创 BestCoder Round #62 (div.2)Clarke and food (简单贪心)

题目链接 题意:有个背包容量是V,现在有n个物品,每个物品有一个体积,问背包最多能装多少个。 解法:先排序,从小到大选。#include<cstdio>#include<iostream>#include<algorithm>#include<cmath>#include<set>#include<map>#include<string>#include<cstring>#in

2015-11-15 11:11:37 305

原创 1079: [SCOI2008]着色方案(dp之记忆化搜索)

题目链接 题意:略 解答:考虑到每种颜色最多只能涂5个,设dp[a][b][c][d][e][last]:能涂一个格子的颜色有a种,能涂2个格子的颜色有b种,能涂3个格子的颜色有c种,能够涂4个格子的颜色有d种,能够涂5个格子的颜色有e种,且上一次涂的是last,的方案数。 能够想到的是,比如一种颜色x能涂3个格子,当我们使用它涂一个格子后,那么它就会变为能涂2个格子的类别中去了。这一点决定了

2015-11-14 10:29:25 559

原创 Codeforces Testing Round #12C - Subsequences (dp+树状数组优化)

> 题目链接 题意:在n个数中,找出长度是k的上升子序列个数,(n个数都不相同) 解答:dp[i][j]:表示以i结尾的长度是j的上升序列的个数,那么dp[i][j]=dp[1][j-1]+dp[2][j-1]+dp[3][j-1]+….+dp[i-1][j-1];由于是区间求和 ,所以我们可以使用树状数组优化。#include<bits/stdc++.h>using namespace s

2015-11-12 15:56:41 465

原创 Codeforces Testing Round #12 B - Restaurant ( 贪心 )

题目链接 题意:给出n个不相交的区间,求出不相交区间的最大个数 解答:先按照区间右断点排序,再按照区间左端点排序#include<bits/stdc++.h>using namespace std;#define LL long longconst int maxn=500002;struct node{ int l,r; bool operator<(const nod

2015-11-12 15:51:33 403

原创 Codeforces Testing Round #12 A. Divisibility( 容斥原理 )

题目链接 题意:给你一个数x,和一个区间,然后再区间里面有几个这个数的倍数 解答:区间 [1-n]里面是x的倍数为n/x;所以我们可以就算区间[a,b]里面是x的倍数的个数是b/x-(a-1)/x; 但是要注意的一点事,我们需要考虑0的情况,所以分类考虑即可#include<bits/stdc++.h>using namespace std;#define LL long longco

2015-11-12 15:48:11 340

原创 Linux系统下codeblocks 复制粘贴

使用codeblocks编程运行时终端不能复制粘贴 解决:settings–>environment–>generalsettings–>Terminal to launch console programs:把方框里默认的终端改成 gnome-terminal -t $TITLE -x

2015-11-11 14:42:28 3211 1

原创 图的基本知识及其存储

图论基本知识:文章链接:这里 关于图的一种常见的,链式前向星存储法:资料这里

2015-11-11 13:08:04 328

原创 BZOJ1051: [HAOI2006]受欢迎的牛(强连通Tarjan 缩点)

题目链接 题意:每一头牛的愿望就是变成一头最受欢迎的牛。现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎。 这种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也认为牛C受欢迎。你的任务是求出有多少头牛被所有的牛认为是受欢迎的。 解法:跑一遍Tarjan算法,进行缩点,然后在缩点后的图上找出度为0 的个数。#include<bits/stdc++.h>using

2015-11-09 13:33:08 438

原创 Codeforces Round #330 (Div. 2) B. Pasha and Phone(容斥原理)

题目链接 题意:输入n,k表示电话号码的长度,然后,k 表示对电话号码分块,然后给出a,b数组,问满足,每一块的第一个数不能是bi,同时这一块的数组成的十进制数能过整除ai。求有多少种。 解法:我们知道数X范围能整除a的个数是X/a,所以用容斥 就是先算出所有的,接着,去掉以bi开始的。#include<bits/stdc++.h>using namespace std;#define L

2015-11-09 06:38:41 850

原创 Codeforces Round #330 (Div. 2) A. Vitaly and Night(模拟)

题目链接 题意:一个有n层的楼。 每一层有m户人家,每户人家有2个窗子,告诉你每个窗子的是否亮着,只要有一个亮着就算着户人家没睡觉,问你没睡觉的户数。 解法:直接模拟统计#include<bits/stdc++.h>using namespace std;#define LL long long#define pb push_back#define X first#define Y

2015-11-09 06:32:44 343

原创 BZOJ3555: [Ctsc2014]企鹅QQ(字符串hash)

题目链接 题意:n个字符串长度一样,找出有多少对,字符串只有一个位置不同 解法: 删除所有字符串的某一位的字符,计算新的hash值,找到相同的。#include<bits/stdc++.h>using namespace std;#define LL long long#define pb push_back#define X first#define Y second#defin

2015-11-07 23:19:48 776

原创 bzoj4300: 绝世好题(dp)

题目链接 题意:给定一个长度为n的数列ai,求ai的子序列bi的最长长度,满足bi&bi-1!=0(2<=i<=len)。 解答:考虑到按位与,我们可以思考,某一位都是1的情况,使用dp[i]:表示数X的二进制i位置是1的时候,最大长度,然后暴力计算。#include<bits/stdc++.h>using namespace std;#define LL long long#defin

2015-11-07 16:26:23 826

原创 Codeforces Round #192 (Div. 1) C. Graph Reconstruction (随机化算法)

题目链接 题意:给你一个n个点m个边的无向图,没有自环,没有重边,然后每个点度数小于等于2,。现在让你重构一个,但是之前有的边,不能再有了,还要满足以上要求。 解法:随机化 (第一次接触)每次随机的时候,检查时候合法。#include<bits/stdc++.h>using namespace std;#define LL long long#define pb push_back#d

2015-11-06 21:50:40 399

原创 Codeforces Round #192 (Div. 1) B. Biridian Forest(BFS)

题目链接 题意:就是在n*m的图里面,从S出发到E,然后数字表示那个格子有几个人,T表示是树,不能走。最后问你有几个人会比你先离开。 解答:从E出发BFS#include<bits/stdc++.h>using namespace std;#define LL long long#define pb push_back#define X first#define Y second#

2015-11-06 21:06:38 281

原创 Codeforces Round #192 (Div. 1) A. Purification(贪心模拟+清除每行每列)

题目链接 题意:给出一个n*n的矩阵,你可以在’.’位置放魔法,魔法会使该行该列的‘E’变为’.’。如果可以全部清空输出n行,每行表示每次的释放魔法点。否则输出-1 解答:贪心模拟、#include<bits/stdc++.h>using namespace std;#define LL long long#define pb push_back#define X first#def

2015-11-06 21:03:23 844

原创 HDU 5514 Frogs (容斥定理)

题意:有n个青蛙在由m个石头组成的圆圈上跳。告诉你每个青蛙每次跳的步长,计算所有被青蛙跳过的石头的编号和。 解法:http://www.cnblogs.com/qscqesze/p/4933949.html#include<bits/stdc++.h>using namespace std;#define LL long long#define pb push_back#define X

2015-11-06 18:52:16 355

原创 HDU5515 Game of Flying Circus(二分)

题意:题解有翻译,然后自己拦截对手时候可以任意走,当然是直线最快啦 题解:http://www.cnblogs.com/qscqesze/p/4931912.html#include<bits/stdc++.h>using namespace std;#define LL long long#define pb push_back#define X first#define Y sec

2015-11-06 11:11:47 706

原创 HDU5521 Meeting([好题]最短路径)

题意:一个人在1位置,另一个在n位置,俩人要见面,然后给出m个集合,告诉集合的城市之间的距离都是t。然后问最短路 解法:边太多,直接邻接表是存不下的,所以要换一个存储方式,存与边关联的点,与点关联的边。然后最短路用堆优化的dij算法。还有一点值得注意的是,一个集合只需要跑一次就可以了,因为是最短路跑过来的,集合里都已经是最短的了#include<bits/stdc++.h>using namesp

2015-11-05 18:45:30 462

原创 Codeforces Round #329 (Div. 2) B. Anton and Lines ([好题] 计算直线在区间是否有交点)

题目链接 题意:给出n个条直线,然后在指定的区间(x1,x2)是否有直线的交点存在。 解法:一:闭区间,首先把区间略微调小。 二:计算直线在x1,x2上的交点y坐标,以及直线的id,然后按照y值,id值排序,最后判断第x1,x2左右两边的第i个点是不是同一直线的,如果不是,就存在交点。#include<bits/stdc++.h>using namespace std;cons

2015-11-05 11:14:54 403

原创 Codeforces Round #329 (Div. 2)A. 2Char(暴力枚举)

题目链接 题意:给出n个单词,只有小写字母组成,然后问如何选择单词,使得组成的长度最长,且组合出的串最多只能有2个字母不同。 解法:暴力枚举2个字母的组合情况,然后在判断。#include<bits/stdc++.h>using namespace std;const int maxn=10005;const int inf=1<<27;string str[maxn];int mai

2015-11-05 10:39:52 283

原创 HDU5510Bazinga(暴力剪枝)

题意:问是否存在最大的j在j之前的字符串中有一个不是j的子串, 思路,剪枝:如果一个串已经是某个串的子串,下次就可以不用再检查他了,还有一个,如果这个串前有比他长的串,那么就可以直接判断是ok的#include<bits/stdc++.h>using namespace std;#define LL long long#define pb push_back#define cl(a,b)

2015-11-04 20:15:28 303

原创 HDU5512 Pagodas(博弈)

题意:有n个位置修建佛塔,每个地方只能被修建一次,初始有a,b两个位置,每次修建的位置要满足,是i=k+j或者i=k-j。这样两个人轮流继续,不能修建者输。 解法:一位大神说,看到a-b,就往gcd上想,大胆猜测 n/gcd(a,b)的奇偶#include<bits/stdc++.h>using namespace std;#define LL long long#define pb pus

2015-11-04 16:29:42 340

原创 HDU 5522 Numbers (暴力枚举)

题意:在一个数组里找是否有三个不同位置的数满足A=B+C 解答:先排序然后从大到小枚举i,把右边的数用一个数组标记其出现过,再枚举左边的数判断其加上Ai是否出现过.#include<bits/stdc++.h>using namespace std;#define LL long long#define pb push_back#define cl(a,b) memset(a,b,size

2015-11-03 21:26:08 396

原创 Codeforces Round #328 (Div. 2) D. Super M (树的直径,虚树的直径)

题目链接 题意:在一棵树上有几个关键点,现在要把这几个点都遍历一遍,问最小的开销 解答:先用一颗子树T,使得这个子树能够包涵所有的关键点,然后我们知道,如果从一点出发遍历完所有点在回到该点那么路径就是2倍的边的个数,假若我们不再回到起点,那么可以减少走的路径,这么才能使得这个路径减少的最多,就是选择2个点,使得,这两个点之间的距离是树的直径,那么以这两个点任何一个为起点,就可以,2次dfs可以求

2015-11-03 21:00:44 558

原创 POJ 1985 Cow Marathon(树的直径)

题目链接 题意:给出一棵树,求出这个树的直径 解答:任选一点进行dfs,会找到一个最远点s,在以这个最远点s进行dfs,会找到一个最远点是t,那么s-t就是树的直径。//#include<bits/stdc++.h>#include<cstdio>#include<algorithm>#include<vector>#include<cstring>using namespace st

2015-11-03 17:20:15 356

原创 Codeforces Round #328 (Div. 2)C. The Big Race(数学gcd && lcm)

题目连接 题意:比赛时 ,居然理解错题意= =,以为两个人的速度是一样的,然后有个人的只会有一步是w米,另一个人只有一步是b米。。。。 就是一个人每一步是w,一个人每一步是b,终点后是深渊,然后长度是在1–t随机选择一个d作为赛道长度,问不能区分二人胜负的可能。 思路:就是求d%w==d%b = =#include<bits/stdc++.h>using namespace std;#de

2015-11-02 15:08:51 344

空空如也

空空如也

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

TA关注的人

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