- 博客(21)
- 资源 (1)
- 收藏
- 关注
原创 HDU 4027 Can you answer these queries? (线段树变着花样让你区间更新)
题意:给一个数组序列, 数组长度为100000,现在有两种操作, 一种操作是将某一个固定区间所有数开方(向下取整),另一种操作是询问某个区间的所有数字之和。坑点:区间的左右不是按顺序给的(RE的原因)思路:单点更新到子叶节点肯定药丸 1e5*1e5(TLE的原因)。所以考虑使用区间更新。这个题的更新操作是对子叶节点开方,而子叶节点的最小值是1。就是说区间的最小值就是righ
2016-09-28 14:10:49 349
原创 HDU 1698 Just a Hook(线段树延迟更新)
题意:一段线段由n条小线段组成,每次操作把一个区间的小线段变成金银铜之一(金的价值为3,银为2,铜为1),最初可当做全为铜;最后求这条线段的总价值。思路:区间更新。区间更新思路: 更新时,把无代表性的父节点标记成0, 把要更新的父节点的旧状态甩给下一层, 然后再向下更新就行。#include #include #include using namespace std;
2016-09-27 12:48:13 262
原创 CodeForces 454C Little Pony and Expected Maximum (数学推导)
题意:掷一个m面的骰子连续n次,n个结果中取最大值为结果。求结果的期望。思路:想象一个m维空间,每个单位空间的值,是其所有坐标轴的最大值。即则总和为 期望化简后为 不考虑精度的话
2016-09-22 21:25:32 403
原创 HDU 2795 Billboard (线段树基础)
题意:有个公告板,大小为h*w,要贴n张公告,每个公告的长度是k,高度固定为1,公告放的要尽可能靠上并尽可能靠左,每给出一张公告,要求这个公告在满足要求的情况下放在了第几层。思路:按照线段树的做法的话,因为公告的高度固定为1,可以对公告板的高度进行切分,将其现在的宽度值存起来,然后每次遍历从左子树开始往下走,知道走到叶子节点满足要求即可。仿大神代码:(Length:680ytes)#i
2016-09-22 16:07:38 377
原创 POJ 3264 Balanced Lineup (线段树基础)
题意:给出一组数,快速查询某个区间中的最大值和最小值。计算最大最小值的差思路:线段树解决,时间为O(logn)#include #include #include #include #include using namespace std;const int MAXN=0x3f3f3f3f;const int NUMB=200000;typedef struct Node
2016-09-21 21:48:01 280
原创 HDU 1754 I Hate It (单点修改,区间查询
思路:建线段树查询,修改的同时维护段的最大值#include #include using namespace std;const int MAXN=2e6+7;int a[MAXN],p;typedef struct Node{ int left; int right; int mid(){ return (left+right)/2;
2016-09-21 21:44:07 363
原创 HDU 1166 敌兵布阵
线段树搜索就行#include #include using namespace std;const int MAXN=5e5;typedef struct Node{ int left; int right; int mid(){ return (left+right)/2; } int val;}Node;Node tree[
2016-09-21 21:41:14 312
原创 CodeForces 688D Remainders Game(中国剩余定理)
题意:给出c1,c2,...cn,问对于任何一个正整数x,给出x%c1,x%c2,...的值x%k的值是否确定;思路:中国剩余定理。详见大神博客:ACdreamer#include #include #include #include #include #include using namespace std;long long gcd(long long a,long
2016-09-21 21:37:33 684
原创 CodeForces 688C NP-Hard Problem(二分图判断)
题意:判断一个无向图是否是二分图基础概念:若一个无向图的环数是奇环则不是二分图染色法解决#include #include #include #include #include #include #include #include using namespace std;const int MAXN=100000;queue a[MAXN+7];int vis
2016-09-21 21:33:46 397
原创 CodeForces 697C Lorenzo Von Matterhorn (二叉树寻径)
C - Lorenzo Von MatterhornTime Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64uSubmit Status Practice CodeForces 697CDescriptionBarney lives in NYC. NYC
2016-09-18 11:05:37 548
原创 CodeForces 697B Barnicle
B - BarnicleTime Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64uSubmit Status Practice CodeForces 697BDescriptionBarney is standing in a bar and starring
2016-09-18 10:12:36 621
转载 输入输出
转自:http://blog.csdn.net/sun_top/article/details/4235992 标准 C I/O函数列表:clearerr() 清除错误 fclose() 关闭一个文件 feof() 如果到达文件尾(end-of-file)返回"True"(真) ferror() 检查一个文件错误 fflush()
2016-09-17 22:43:23 510
原创 CodeForces 706D Vasiliy's Multiset(0/1树)
D - Vasiliy's MultisetTime Limit:4000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64uSubmit Status Practice CodeForces 706DDescriptionAuthor has gone out of the s
2016-09-15 16:54:59 369
原创 Codeforces Round #371 (Div. 2)
A.两线段的交为再判断一下,交是否合法要省略的时间是否在交内就行#include #include #include #include #include #include #include #include using namespace std;int main(){ long long l1,l2,l,r1,r2,r,k; while(ci
2016-09-15 15:11:30 299
原创 高精度加法模板
自己写的,效率很低,见笑见笑string add(string str1,string str2){ int len1=str1.size(); int len2=str2.size(); if(len1<len2){ swap(str1,str2); swap(len1,len2); } int c=0;
2016-09-08 19:52:01 366
原创 NEFU 1191 BFS
平行宇宙Problem:1191Time Limit:2000msMemory Limit:65535KDescription小k是时空贸易者,他经常在两个平行宇宙之间往来经商,现在他要从S点到达E点,问最少需要多长时间。(已知小k在同一个宇宙中只能向上下左右四个方向移动,每次移动需要1
2016-09-08 19:30:18 345
原创 HDU 2066 Dijk 求最短路
Problem Description虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰富自己的阅历,还可以看美丽的风景……草儿想去很多地方,她想要去东京铁塔看夜景,去威尼斯看电影,去阳明山上看海芋,去纽约纯粹看雪景,去巴黎喝咖啡写信,去北京探望孟姜女……眼看寒假就快到了,这么一大
2016-09-08 15:28:42 382
原创 Floyd算法模板
三重循环,这东西真的需要模板吗for(k=1;k<=n;k++) for(i=1;i<=n;i++) for(j=1;j<=n;j++) if(e[i][j]>e[i][k]+e[k][j]) e[i][j]=e[i][k]+e[k][j];
2016-09-06 12:50:56 330
原创 Dijkstra算法浅析
Dijkstra算法迪杰斯特拉算法是由荷兰计算机科学家狄克斯特拉于1959 年提出的,因此又叫狄克斯特拉算法。是从一个顶点到其余各顶点的最短路径算法,解决的是有向图(无向图是特殊的有向图)中最短路径问题。迪杰斯特拉算法主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。注意该算法要求图中不存在负权边。Dijkstra算法的核心是什么?个人浅见:在于它对图层层扩展层层松弛(O(
2016-09-06 11:40:24 548
原创 Dijkstra模板
void Dijkstra(int n,int x)//x为起点,n为终点,map[][]初始化INF代表边值{ int i,p,j,min; for (i=1;i<=n;i++) { dis[i]=map[x][i]; visited[i]=0; } visited[x]=1; for (i=1;i<=n;i++)
2016-09-05 23:03:03 443
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人