- 博客(222)
- 收藏
- 关注
原创 【题解】poj3694 边双联通分量缩点+lca+并查集
题目链接 题目要我们求出每次操作后剩余桥的数量,可以想到首先将图中所有的割边统计并将所有e-DCC缩点得到一棵树。对于每次操作的u,v,考虑u,v是否属于同一e-DCC。显然属于的情况没有影响,而不属于则会使u,v所在e-DCC到lca的路径上的所有边为非割边。利用并查集的路径压缩可以跳过已经是非割边的树边,时间复杂度O(M+QlogN)#include<cstdio>#i...
2018-08-31 14:48:48 212
原创 【题解】csfz图论03拯救007低版 bfs
题目链接 本来看到要求是dfs就随手打了一个,结果过不了样例……又打了个bfs还是不行,发现判断函数写的有问题……#include<cstdio>#include<cstring>#include<cmath>#include<queue>using namespace std;#define _rep(i,a,b
2018-08-31 14:48:44 304
原创 【题解】bzoj2200 并查集+拓扑排序+dijkstra+bfs
题目链接 由题意可以知道双向道路没有负边权,而单向负权路不构成环。如果把所有的道路单独添加到图里,会形成若干个连通块。把每个连通块看做一个点,把航线添加进图里,会形成DAG。可以在DAG上跑拓扑序,在线性时间里求出单元最短路。在每个连通块内部用堆优化的dijkstra。 步骤: 1.将所有道路添加到图中形成若干连通块,遍历每一个连通块记录每个节点所属的连通块编号(并查集); 2.将有向边添...
2018-08-31 14:48:39 343
原创 【题解】洛谷P1093奖学金[NOIP2007普及] 排序
题目链接#include<iostream>#include<cstdio>using namespace std;struct xue{ int sn; int yw; int sx; int yy; int zf;}a[1000];int main(){ //freopen("in.txt","r&am
2018-08-31 14:48:34 401
原创 【题解】洛谷P1051谁拿了最多奖学金[NOIP2005T1] 排序
题目链接 调试时发现scanf把空格也给读进去了……数据不大就直接换cin(话说读入空格有什么比较好的解决办法)#include<cstdio>#include<algorithm>#include<iostream> using namespace std;#define _rep(i,a,b) for(int i=(a);i<=(b)
2018-08-31 14:48:30 307
原创 【题解】洛谷P1583魔法照片 排序
题目链接 第一次排序后是按新的下标算新的权值……没注意到就wa了(星际玩家)#include<cstdio>#include<algorithm>using namespace std;#define _rep(i,a,b) for(int i=(a);i<=(b);i++)const int N=2e4+10;int e[11];struct ...
2018-08-31 14:48:27 325
原创 【洛谷试炼场】普及练习场——排序
题目1.P1177【模板】快速排序 排序 题目链接 蒟蒻题解 2.P1059明明的随机数 排序 题目链接 蒟蒻题解 3.P1068分数线划定 排序 题目链接 蒟蒻题解 4.P1781宇宙总统 字符串+排序 题目链接 蒟蒻题解总结排序也属于基本算法中的一种,一般可以用来离散化,还有些关于中位数的题,还有求逆序对啥的(这一节好像都没有) 这节的排序挺简单,不过字符串...
2018-08-31 14:48:02 405
转载 【模板】二分
本蒟蒻的二分每次都要写炸……整理一下二分的写法,这次我可得记住了。 (摘自《算法竞赛进阶指南》)//整数集合上的二分//在单调递增序列a中查找≥x的数中最小的一个(即x或x的后继):while(l<r){ int mid=(l+r)>>1; if(a[mid]>=x)r=mid;else l=mid+1;} return a[l];//在单...
2018-08-31 09:28:58 159
原创 【题解】洛谷P1781宇宙总统 字符串+排序
题目链接 用stl进行字符串排序,注意比较函数先比长度再比大小#include&lt;cstdio&gt;#include&lt;iostream&gt;#include&lt;string&gt;#include&lt;algorithm&gt;using namespace std;#define _rep(i,a,b) for(int i=(a);i&am
2018-08-31 07:47:07 471
原创 【题解】洛谷P1068分数线划定[NOIP2009普及T2] 排序
题目链接#include&lt;cstdio&gt;#include&lt;math.h&gt;struct node{ int k,s;}q[10000],temp;int main(){ int n,m,p,i,j,cnt=0; scanf("%d%d",&amp;n,&amp;m); for(i=1;i&lt
2018-08-31 07:46:59 287
原创 【题解】洛谷P1059明明的随机数[NOIP2006普及] 排序
题目链接 很早以前写的了,手动去重#include&lt;cstdio&gt;#include&lt;algorithm&gt;using namespace std;int a[200],b[200];int main(){ //freopen("in.txt","r",stdin); int k=1,i,n; scanf(&am
2018-08-30 07:03:22 561
原创 【题解】洛谷P1177[模板]快速排序
题目链接 复习一波模板#include&lt;cstdio&gt;#include&lt;algorithm&gt;using namespace std;#define _rep(i,a,b) for(int i=(a);i&lt;=(b);i++)const int N=1e5+10;int a[N];void qsort(int l,int r){ int m...
2018-08-30 07:03:18 269
原创 【模板】快速排序
#include&lt;cstdio&gt;#include&lt;algorithm&gt;using namespace std;#define _rep(i,a,b) for(int i=(a);i&lt;=(b);i++)const int N=1e5+10;int a[N];void qsort(int l,int r){ int mid=a[(l+r)/2]; ...
2018-08-30 07:03:13 118
原创 【题解】洛谷P1073[NOIP2009]最优贸易(同CH6101) dijkstra
题目链接 建立正反两张有向图,先以1为起点,在原图上跑SPFA或dijkstra,求出1到x的所有路径中经过权值最小节点的权值D[x];再反向跑一遍,求出最大F[x],然后枚举所有点,用F[x]-D[x]更新答案 我用的dijkstra,不加任何优化会T掉1个点,加了fread读优后洛谷上还是会T,再加O2就AC,在Contest Hunter上过了。#include&lt;cstdi...
2018-08-30 07:03:08 262
原创 【题解】poj3662 dijkstra+二分
题目链接题目大意在无向图上求出一条从1到n的路径,使得路径上第k+1大的边权尽量小。思路本题答案显然具有单调性,因为支付的钱更多时,合法的升级方案一定包含了花费更少的升级方案。所以我们可以二分答案,把问题转化为:是否存在一种合法的升级方法,使花费不超过mid。 将价格大于mid的电缆看做长度为1,把升级价格不超过mid的电缆看做长度为0,求1到N的最短路不超过K。 可以用双...
2018-08-30 07:02:51 267
原创 【洛谷试炼场】普及练习场——交叉模拟
题目1.P1023税收与补贴问题 模拟 题目链接 蒟蒻题解 2.P1031均分纸牌 模拟 题目链接 蒟蒻题解 3.P1042乒乓球 模拟+队列 题目链接 蒟蒻题解 4.P1086花生采摘 模拟+优先队列 题目链接 蒟蒻题解 5.P1098字符串的展开 模拟 题目链接 蒟蒻题解总结洛谷试炼场关于模拟部分的题就结束了。这一节的题比上一节要难一些,有些题要考一点思...
2018-08-30 07:01:51 416
原创 【洛谷试炼场】普及练习场——简单的模拟
题目1.P1003铺地毯 模拟 题目链接 蒟蒻题解 2.P1067多项式输出 模拟 题目链接 蒟蒻题解 3.P1540机器翻译 模拟+队列 题目链接 蒟蒻题解 4.P1056排座椅 模拟 题目链接 蒟蒻题解 5.P1328生活大爆炸版石头剪刀布 模拟 题目链接 蒟蒻题解 6.P1563玩具谜题 模拟 题目链接 蒟蒻题解总结本节考察基础的模拟,根据题意来...
2018-08-30 07:01:47 403
原创 【信息学奥赛一本通】 第一部分 C++语言——第四章 循环结构的程序设计
章节链接题目第一节 for语句1059:求平均年龄 题目链接#include&lt;cstdio&gt;using namespace std;int a[105];int main(){ double n,sum=0,ave; scanf("%lf",&amp;n); for(int i=1;i&lt;=n;i++){ scanf(...
2018-08-30 07:01:15 2864
原创 【信息学奥赛一本通】第一部分 C++语言——第三章 程序的控制结构
章节链接题目第一节 if选择结构1039:判断数正负 题目链接#include&lt;iostream&gt;using namespace std;int main(){ int n; cin&gt;&gt;n; if(n&gt;0)cout&lt;&lt;"positive"&lt;&
2018-08-30 07:01:09 881
原创 【信息学奥赛一本通】第一部分 C++语言——第二章 顺序结构程序设计
章节链接题目第一节 运算符和表达式1006:A+B问题 题目链接#include&lt;iostream&gt;using namespace std;int main(){ int a,b; cin&gt;&gt;a&gt;&gt;b; cout&lt;&lt;a+b&lt;&lt;endl;
2018-08-30 07:00:56 1516
原创 【信息学奥赛一本通】第一部分 C++语言——第一章 C++语言入门
章节链接题目1000:入门测试题目 题目链接#include<iostream>using namespace std;int main(){ int a,b; cin>>a>>b; cout<<a+b<<endl; return 0;}1001:Hello,World! 题目...
2018-08-29 11:10:05 1731
原创 【杂记】关于信息学奥赛一本通
这本书我不知道其他学校用不用,反正我大半年的OI学习中一直在学这本书写对应的一本通题库写了三百多题之后感觉这书涉及的知识点不全,就开始学刘汝佳学李煜东,写洛谷写uva hdu poj等等……不过一本通题库好像更新了,也可以多去做做。新开这个坑,先把之前我写过的代码整理着发出来,然后我也重新开始冲榜。一本通的题我就不单独发题解了,直接一章一章地发,毕竟一天只能发10篇博客,而且前面的部分大多都很基础...
2018-08-29 10:53:12 2780
原创 【洛谷试炼场】新手村总结
1.洛谷的第一个任务 主要是让新手熟悉基本的语言 2.顺序与分支 训练条件判断语句 3.循环!循环!循环 熟悉基本的循环语句 4.数组 一些关于数组的操作 5.简单字符串 关于字符与字符串的操作,当初写这个的时候可费了不少工夫,理解ASCII和大小写转换以及字符与整型转换(高精度时常用),还有一些字符串的函数可以简化操作 6.过程函数与递归 从这里开始里面的每一道题我都单独归...
2018-08-29 10:43:03 1224
原创 【洛谷试炼场】洛谷新手村——BOSS战-入门综合练习2
题目1.P1426 小鱼会有危险吗 模拟 题目链接 蒟蒻题解 2.P1464 Function 记忆化搜索 题目链接 蒟蒻题解 3.P1014 Cantor表 枚举+简单数学知识 题目链接 蒟蒻题解 4.P1022 计算器的改良 模拟 题目链接 蒟蒻题解 5.P1307 数字反转 模拟 题目链接 蒟蒻题解总结这一节主要考察的是基本算法中的模拟与枚举,模拟是N...
2018-08-29 10:18:50 443
原创 【题解】洛谷P1307数字反转[NOIP2011普及] 模拟
题目链接 洛谷新手村拖了快一年才搞定(大雾)#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;cctype&gt;const int N=110;char pre[N];char num[N];int cnt;int main(){ scanf("%s",pre); if(pr
2018-08-29 07:11:18 293
原创 【题解】洛谷P1022计算器的改良[NOIP2000普及] 模拟
题目链接 记下未知数的系数和常数,最后移项做除法得到结果。#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;cctype&gt;#define _for(i,a,b) for(int i=(a);i&lt;(b);i++)const int N=1e3+10;char e[N],a;int f1=1,f2=1;
2018-08-29 07:11:14 523
原创 【题解】洛谷P1014Cantor表 枚举+简单数学知识
题目链接 将这张表看做一个坐标系,观察可得n的编号即n的坐标。设n(x,y),则横纵坐标的和为x+y。通过观察发现和为a的斜线上有a-1个点,于是n点之前的斜线共有(1+2+..+x+y-2)=(x+y-2)*(x+y-1)/2个点; 而由对称性n点与前一斜线的差值可直接等于x(或y)所以问题变成找到一组x,y,使得n=(x+y-2)*(x+y-1)/2+x; 移项可得2*n=(x+y-2)...
2018-08-29 07:11:07 277
原创 【题解】洛谷P1464Function 记忆化搜索
题目链接 题目说明直接写清楚是记忆化搜索……真贴心#include&lt;cstdio&gt;const int N=1e4+10;typedef long long ll;ll f[21][21][21];ll work(ll a,ll b,ll c){ if(a&lt;=0||b&lt;=0||c&lt;=0)return 1; if(a&gt;20||b&
2018-08-29 07:11:03 283
原创 【题解】洛谷P1426小鱼会有危险吗 模拟
题目链接 简单模拟#include&lt;cstdio&gt;double s,x;int main(){ scanf("%lf%lf",&amp;s,&amp;x); double v=7.0,d=0.0; while(d&lt;(s-x))d+=v,v*=0.98; d+v&lt;=s+x?puts("y&a
2018-08-29 07:10:59 474
原创 【杂记】2018-08-07校赛 并查集 赛后总结
题目A-Parity game B-食物链总结本次比赛主考并查集,两题考察的是关系传递性的并查集,往往采用带权并查集或者扩展域并查集。
2018-08-28 19:41:24 114
原创 【题解】poj1733 带权并查集
题目链接 d[x]为0表示奇偶性相同,为1表示奇偶性不同。 d[x]xor d[y]为x与y的奇偶性关系,若d[x]xor d[y]≠ans则矛盾#include&lt;cstdio&gt;#include&lt;algorithm&gt;using namespace std;#define _rep(i,a,b) for(int i=(a);i&lt;=(b);i++)cons...
2018-08-28 19:34:29 181
原创 【题解】洛谷P1196[NOI2002]银河英雄传说 带权并查集
题目链接 改了快一个小时过不了样例,交上去AC了……可能这就是权贵吧#include&lt;cstdio&gt;#include&lt;cmath&gt;#define _rep(i,a,b) for(int i=(a);i&lt;=(b);i++)using namespace std;const int N=3e4+10;int t;int fa[N],d[N],size[N...
2018-08-28 19:34:21 229
原创 【题解】洛谷P1955[NOI2015](同bzoj4195) 并查集+离散化
题目链接 对于每个相等的约束条件,合并所在集合;对于不等的约束条件,若两个变量处于同一集合内,则不可能被满足。#include&lt;cstdio&gt;#include&lt;algorithm&gt;using namespace std;#define _rep(i,a,b) for(int i=(a);i&lt;=(b);i++)#define _for(i,a,b) f...
2018-08-28 19:34:17 158
原创 【题解】poj2559 单调栈
题目链接 我们建立一个栈,用来保存若干个矩形,这些矩形的高度是单调递增的。我们从左至右依次扫描每个矩形: 如果当前矩形比栈顶矩形高,直接进栈; 否则不断取出栈顶,直至栈为空或者栈顶矩形的高度比当前矩形小。在出栈过程中,我们累计被弹出的矩形的宽度之和,并且每弹出一个矩形,就用它的高度乘上累计的宽度去更新答案。整个出栈过程结束后,我们把一个高度为当前矩形高度、宽度为累计值的新矩形入栈 整个扫描...
2018-08-28 19:34:13 192
原创 【洛谷试炼场】洛谷新手村——BOSS战-入门综合练习1
题目1.P1478陶陶摘苹果(升级版) 排序 题目链接 蒟蒻题解 2.P1618三连击(升级版) 枚举 题目链接 蒟蒻题解 3.P1579哥德巴赫猜想(升级版) 线性筛 题目链接 蒟蒻题解 4.P2089烤鸡 枚举 题目链接 蒟蒻题解总结这一节对之前学习的基本算法进行了一些提升,但还是很简单。不过这些基本算法的思想很重要,可能也会考出很难的题,不能掉以轻心。...
2018-08-28 19:33:09 475
原创 【题解】洛谷P2089烤鸡 枚举
题目链接 感觉应该要递归做的,但我偏要体验一下宏定义压行的感觉#include&lt;cstdio&gt;#define _rep(i,a,b) for(int i=(a);i&lt;=(b);i++)#define _for(i,a,b) for(int i=(a);i&lt;(b);i++)int n,cnt;int ans[10010][20];int main(){...
2018-08-28 06:19:38 460
原创 【题解】洛谷P1618三连击(升级版) 枚举
题目链接 数据规模很小,直接枚举出来判断#include&lt;cstdio&gt;#define _rep(i,a,b) for(int i=(a);i&lt;=(b);i++)int a,b,c,n1,n2,n3;int addnum(int x){ return (x/100)+(x/10%10)+(x%10);}int mulnum(int x){ ...
2018-08-28 06:19:32 271
原创 【题解】洛谷P1478陶陶摘苹果(升级版) 排序
题目链接 为了之前立的写完试炼场的flag,开始从新手村写起……(我太鶸了,学一年OI没过新手村) 一道水题,按力气升序排序就好#include&lt;cstdio&gt;#include&lt;algorithm&gt;using namespace std;#define _rep(i,a,b) for(int i=(a);i&lt;=(b);i++)const int N...
2018-08-28 06:19:26 325
原创 【洛谷试炼场】洛谷新手村——简单字符串
题目1.P1055ISBN号码[NOIP2008普及] 题目链接#include&lt;iostream&gt;using namespace std;int ans,m,g,j;int main(){ char b[15]; for(int i=1;i&lt;=12;i++){ cin&gt;&gt;b[i]; if(b[i]!='...
2018-08-28 06:16:40 352
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人