自定义博客皮肤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)
  • 收藏
  • 关注

原创 POJ3320

尺取法做,在某个区间[s,t]已经覆盖了所有的知识点的情况。 有了如下的等价关系,所有的知识点被覆盖等价于每个知识点出现的次数不少于1.附上代码。#include<iostream> #include<cstdio> #include<queue> #include<set> #include<algorithm> #include<map> using namespace std; const

2016-05-13 12:15:06 326

原创 POJ3061

http://poj.org/problem?id=3061 先说一种nlogn的算法,预先以O(N)的时间计算好sum,二分搜索,序列和不小于的结尾T的最小值。#include<iostream> #include<algorithm> #include<cstdio> #include<queue> #include<cstring> using namespace std; const int

2016-05-13 09:00:55 491

原创 POJ1064

http://poj.org/problem?id=1064 题意:知道N段电缆的长度,从他们中切割出K条长度相同的电缆,求最大可以切多长,答案保留2位小数。二分搜索。#include<iostream> #include<cstdio> #include<algorithm> #include<queue> #include<cmath> using namespace std; const in

2016-05-11 20:53:51 548

原创 noi2010超级钢琴

优先队列+st#include<iostream> #include<cstdio> #include<queue> #include<algorithm> #include<cmath> using namespace std; typedef long long ll; const int INF=1E9; const int maxn=5e5+10; int n,k,minlen,maxlen

2016-05-11 13:27:17 408

原创 NOI能量采集

http://www.lydsy.com/JudgeOnline/problem.php?id=2005 这道题第一个想到了一种解法,和挑战上求线段的格点数一样,只要求出gcd(x-0,y-0)-1就是当前点的于(0,0)点的格点数,于是这里只要枚举x,y即可求解。。80的算法。。对于数据大的会超时。。下面先附上算法。#include<iostream> #include<cstdio> #incl

2016-05-10 11:30:08 979

原创 POJ2395最小生成树水

题意是从1号点出发最短路遍历所有点求其中最长的边。 思路,很明显是最小生成树问题,用kruskal去做每次更新最大边即可。 附上代码。#include<iostream> #include<cstdio> #include<algorithm> #include<queue> using namespace std; const int maxn=1e4+10; const int maxa=2

2016-05-07 09:06:54 459

原创 POJ3469

线段树解法: 本题需要成段更新区间,所以 为了保护线段树的高效,对每个节点,我们维护一下两个数据。a.给这个节点对应的区间内的所有原始共同加上的值。 b.在这个节点对应的区间中除去a之外其他的值的和。通过单独维护共同加上的值,给区间同时加上一个值的操作就可以高效的进行了。如果对于父亲节点同时加上一个值,那么这个值就不会在儿子节点被重复考虑。#include<iostream> #include<

2016-05-30 11:52:48 317

转载 stl vector

如果单纯的unique如果输入3 2 1 1 2 3,它的输出是1 2 3 2 3 3——没到达要求。  unique只是把重复的元素放到容器的后面,而它本身会返回一个迭代器,只向这些元素的开始部分。因此要向真正删除这些元素,还是要“手工”处理一下。对于上面的例子,可以用vector窗口的erase。

2016-05-23 21:57:11 232

原创 POJ3111

http://poj.org/problem?id=3111 二分+贪心 对于这个问题,我们定义C(x):=可以选择使得单位重量的价值不低于x。 因此问题就变成了sigama(vi)/sigame(wi)>=x. 变形得 sigama(vi-x*wi)>=0 因此就可以对(vi-x*wi)进行贪心的选取。 那么问题就变成了C(x)=((vi-x*wi)从大到小

2016-05-12 19:11:48 448

原创 POJ2456

题意:有N间牛舌,排成一条直线(第i号牛舍在xi位置),有M头牛,要让每头牛都放在离其他牛尽可能元的牛舍。 二分搜索+贪心#include<iostream> #include<algorithm> #include<cstdio> #include<queue> using namespace std; const int INF=1E9; const int maxn=1e5; int a[m

2016-05-11 23:02:45 524

原创 cqm 解题报告e

http://acm.cqu.edu.cn/oj/problem_show.php?pid=21463 这题本人较弱。。赛间只会TLE的算法。赛后看标程才会的。 下面附上代码。#include<iostream> #include<algorithm> #include<queue> #include<cstdio> #include<cstring> using namespace std; c

2016-05-09 21:40:51 351

原创 输入挂C++模板

可能会用上先记录学习下inline long long readlongint()//优化接受int数,省时间,具体内容自己看懂,当成模板使用 { char ch = getchar(); long long data = 0; while (ch < '0' || ch > '9') ch = getchar(); do {

2016-05-08 19:46:48 628

原创 cqm解题报告F

http://acm.cqu.edu.cn/oj/problem_show.php?pid=21464 本题不是很难,仔细观察就可以得知x+n-i是恒定的(x是每个人的金钱树,n是队列的长度,i是在当前位置。如果那么很显然的一点是如果出现相同的xi+n-i,那么一定是无限交换队列。 下面附上AC代码。#include<iostream> #include<algorithm> #include<c

2016-05-08 14:36:50 343

原创 cqm解题报告03

这题现场的时候我看了一眼感觉是个并查集就跳过,,赛后发现这是个拓扑排序,,于是学了波。。这题用拓扑做,如果构成了环表示不能构成拓扑排序,即题意中的记错了。 下面附上代码。#include<iostream> #include<cstdio> #include<queue> #include<algorithm> #include<cstring> using namespace std; cons

2016-05-08 12:25:42 253

原创 cqm解题报告I

http://acm.cqu.edu.cn/oj/problem_show.php?pid=21467 题意就是让我们找一个数只能有三个约数,很明显素数有两个,那么容易找到规律,这个数只能有着三个约数。1和自己还有sqrt(n)。sqrt(n)自然要是素数。 但是这题还是挺容易犯错的,数组会越界之类的都要小心,先打个素数表会快很多。 下面附上AC代码,#include<iostream> #in

2016-05-08 00:36:24 347

原创 cqm题解报告04

这题是道字符串匹配问题。。比较容易,赛间TLE了多次。。我真是傻。 用两次stack模拟就可以做了。 下面附上代码。#include<iostream> #include<queue> #include<cstdio> #include<cstring> using namespace std; const int maxn=2e5+10; char a[maxn]; int main() {

2016-05-07 22:01:08 305

原创 cqm解题报告02

又是一道签到题。。只能做签到题,唉。位运算判断每一位上是否为1,int范围,for到32就可以了。#include<stdio.h> #include<iostream> using namespace std; int n; int main() { int t; scanf("%d",&t); while(t--){ scanf("%d",&n);

2016-05-07 19:25:57 319

原创 cqm解题报考01

这题一开始很不小心理解错意思导致wa了好多次,后面重读题面才过的。 就是个水题,只要枚举找出第几层删除了,然后for一遍找出最大的距离。#include<iostream> #include<cstdio> #include<algorithm> using namespace std; typedef long long ll; const int maxn=1e6+10; const ll I

2016-05-07 19:08:40 470

原创 POJ1258最小树水。。

题意,给了你N个农村,和每个农村之间的关系,问最小耗费。 很明显是裸的最小生成树。 下面贴上prime算法#include<iostream> #include<cstdio> #include<algorithm> #include<queue> #include<set> using namespace std; const int maxn=1e4+10; const int INF=1e

2016-05-06 20:05:41 384

原创 POJ3268最短路水题

题意大概是有n个农场n头牛,要去x农场的牛。去和返回都要走最短路,问耗费时间最长的那条路是多少。 首先想到就的就是floyd算法果然TLE了。 先附上TLE的代码#include<iostream> #include<queue> #include<algorithm> #include<cstdio> using namespace std; const int maxn=1000+10; c

2016-05-06 16:37:58 530

原创 大数模板

由于平常遇到的问题会出现爆ll的情况。所以贴上大数模板。(JAVA大数实在太慢了。struct bign { int len, s[MAXN]; bign () { memset(s, 0, sizeof(s)); len = 1; } bign (int num) { *this = num; } bign (cons

2016-05-04 15:36:56 370

空空如也

空空如也

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

TA关注的人

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