c++
文章平均质量分 64
zz_ylolita
这个作者很懒,什么都没留下…
展开
-
hdu某道题
题目大意:给出一棵树,求以i为根节点的子树中有多少个节点标号比i小 得到dfs序之后,用树状数组求第i个数之前比第i个数小的数的个数 ans[i]=ed[i]-st[i];#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>using namespace std;#define MAXN 100原创 2015-08-09 23:17:55 · 424 阅读 · 0 评论 -
c++多组数据输入
#includeusing namespace std;int main(){ int a,b; while(cin>>a>>b) { cout<<a+b<<endl; } return 0;}原创 2014-12-06 23:05:11 · 4595 阅读 · 1 评论 -
bzoj1208:[HNOI2004]宠物收养所-splay
这个splay维护的不是下标,维护的是数值,所以每必要记下size 还有各种标记只要能够插入一个数,删除一个数,找一个不在树中的数的前驱和后继就可以了。需要想的是这道题并不需要用两个splay或者记下多余的没用掉的宠物或者人,只要用一个splay就好了,因为题目中说了任意时刻宠物店中只有人或者只有宠物,这样轮换着用一个splay就好了orz...好奇怪,这道题在家里写了一天都是WA,在原创 2016-03-02 19:42:30 · 998 阅读 · 0 评论 -
网络流初步
问题描述:找从源点s到汇点t能流过的最大流量最大流问题Ednonds-Karp每次增广的时候用BFS,这样不用找所有可能增加的流量,减少了循环次数。复杂度 O(VE^2) 适用于几百的数据,可以直接用邻接矩阵存储,要存反向边poj1273 注意两个顶点间可能有多条边,相加即可,这也是邻接矩阵的好处 cap[][]表示初始的容量 flow[][]表示当前增广的原创 2015-12-23 19:54:04 · 614 阅读 · 0 评论 -
Codechef CHEFPRES—LCA
CHEFPRES所谓一眼题,但是通过这道题学了c++的vector...只想表示学语言什么的看别人代码最快了。。不想啃书#include #include #include #include #include #include using namespace std;#define MAXN 100010#define MAXK 110vector a[MAXK];原创 2015-12-23 00:34:12 · 531 阅读 · 0 评论 -
CF620C - Pearls in a Row
题目大意:给出一个数组,要求将数组分成若干段,每个数都必须属于一段,使得每一段都至少有两个数相同。greedy因为一定要分成连续的段,所以可以用贪心。找到相同的算为一段就可以了。用map直接标记那些数出现过了就不会TLE#include #include #include #include #include using namespace std;#define M原创 2016-01-22 17:52:01 · 747 阅读 · 0 评论 -
Manacher算法
http://blog.csdn.net/ggggiqnypgjg/article/details/6645824/原文说的很清楚,Manacher算法就是O(n)来求一个字符串S的最长回文串的。hdu3068 #include #include #include #include #include //max min函数包含在这个里面。。?using namespace原创 2016-01-01 23:57:18 · 450 阅读 · 0 评论 -
BZOJ 4152: [AMPPZ2014]The Captain
本来可以考虑每两个点之间连一条边 O(n^2)但是如果两个点之间连了一条x的边,中间还有一个点,那么|x_i - x_a|+|x_a - x_i+1| = |x_i - x_i+1|可以只连i 到a的x的边和a到i+1的x的边y同理只连排序后的相邻的边用dijkstra 跑一遍最短路。稳定的时间复杂度O(nlogn) 可以过为什么不用spfa呢。。。因为时间复杂度不稳定,理论上原创 2016-01-01 22:42:17 · 1185 阅读 · 0 评论 -
c++栈和队列
使用标准库的栈和队列时,先包含相关的头文件#include#include定义栈如下:stack stk;定义队列如下:queue q;栈提供了如下的操作[cpp] view plaincopys.empty() 如果栈为空返回true,否则返回false s.转载 2015-11-02 21:42:03 · 373 阅读 · 0 评论 -
c++字符串学习
#include #include #include #include using namespace std;int d,t;char s[100000];int main(){ scanf("%d",&d); d=d% 26; scanf("%s",s); for (int i=0;i<strlen(s);i++) { t原创 2015-08-29 22:50:11 · 304 阅读 · 0 评论 -
百度之星2017 资格赛 1003 度度熊与邪恶大魔王
完全背包这题要考虑到怪兽的数目100000很多,但是生命值1000和防御力10很小,并且招数种类1000也不大,(根据抽屉原理)说明有很多生命值或者防御力重复的怪兽。因此我们没有必要一个怪兽一个是怪兽大,只要对每种生命值和防御力的怪兽进行每种招数的转移即可。dp[i][j]表示消灭生命值为i,防御力为j的怪兽最少消耗的冰晶石数dp[i][j] = min ( dp[i][j], dp[原创 2017-08-06 20:07:15 · 644 阅读 · 0 评论