自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lemondinosaur的博客

转圈圈 不停转圈圈 然后摔倒

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

原创 #并查集#JZOJ 1778 洛谷 2024 食物链

题目大意:给你一些真假不明的同类关系或捕食关系,求有多少个假关系。题目分析:首先因为真假不明,所以理论上的并查集是错误的。所以说三种关系,吃,被吃,同类。因为我们不知道它们是什么动物,但它们组成了一个环,所以只是相对关系。1~n——————A;C;Bn+1~2n————B;A;C2n+1~3n———C;B;A#include <cstdio>...

2018-01-31 21:42:12 204

原创 #并查集#JZOJ 1777 洛谷 1551 亲戚

(交洛谷的请调整输入!此处以JZOJ为准)#include <cstdio>using namespace std;int f[100001],n,m,x,y;int getf(int u){ if (f[u]==u) return u; else return f[u]=getf(f[u]);//路径压缩}void uni(int x,int y){ ...

2018-01-31 21:04:32 212

原创 #堆#JZOJ 1478 堆排序

首先有两种操作:上升,下降。随便举个例子。 (只是比如,不考虑顺序) 最后 输出1 然后 最后以此类推over代码如下#include <cstdio>#include <algorithm>using namespace std;int a[200001],n;voi

2018-01-31 17:07:49 292

原创 2018.01.31【NOIP普及组】模拟赛D组

It’s happy for me to have a contest today.^_^JZOJ NO.1 【普及模拟】奇数统计水题,桶排,不多解释#include <cstdio>using namespace std;int n,x,a[10001];int main(){ freopen("count.in","r",stdin); ...

2018-01-31 16:18:23 198

原创 2018.01.30【NOIP普及组】模拟赛D组

&_&(看我深邃的眼神就知道了一切)JZOJ NO.1 【2018.1.30普及组模拟】二项式展开式题目大意:展开一个二项式。题目分析:拆开后每个单项式的系数为C(n,i),a的次数为n-i,b的次数为i我居然错了,请看我改后的AC代码#include <cstdio>#define ull unsigned long long...

2018-01-31 08:12:26 239

原创 2018.01.27【GDOI2018】模拟C组

这套题我考得不错JZOJ NO.1 香烟简单的纯模拟。#include <cstdio>using namespace std;int n,m,ans;int main(){ scanf("%d%d",&n,&m); ans=n;//首先答案为香烟数 while (n/m){//如果可以换香烟蒂头 ans+=...

2018-01-30 08:14:54 209

原创 2018.01.29【NOIP普及组】模拟赛D组

今天-_-,比赛感觉好难啊!JZOJ NO.1 【2018.1.29普及组模拟】NOIP首先如何求原来的方案数呢?=然后怎样求加p后的个数呢?再加上增加的个数对于N而言,增加的为在N后I的个数。对于I而言,增加的为在I后N的个数。O再来一遍枚举求=代码如下#include <cstdio>#include &a

2018-01-29 20:04:03 472

原创 2018.01.27【NOIP普及组】模拟赛D组

这一次的题目比28,26难了很多。JZOJ NO.1【2014.10.18普及组】反射首先这道题我是栈溢出。所以深搜我改为while (true){ }#include <cstdio>using namespace std;int n,ans,m; char a[1001][1001];int main(){ freopen("mirro...

2018-01-29 07:54:40 447

原创 2018.01.28【NOIP普及组】模拟赛D组

JZOJ NO.1 【usaco2013 mar】懒惰的奶牛[b]前缀和求和。代码如下:#include <cstdio>#include <algorithm>using namespace std;int n,k,g,x; long long ans,t[5000001];int main(){ freopen("lazy_bro...

2018-01-29 07:37:54 229

原创 2018.01.26【NOIP普及组】模拟赛D组

JZOJ NO.1 【普及组模拟赛】手机代码如下#include <cstdio>#include <cstring>using namespace std;char s; int ans; short f[27];int main(){ for (int i=1;i<=18;i++) f[i]=(i%3); f[19]=4; ..

2018-01-26 20:01:43 517

原创 2018.01.21【NOIP普及组】模拟赛D组

这是昨天做的。JZOJ NO.1 【2011.12.31普及模拟】逃离洞穴一看这道题就想到了floyd。(1)最多有多少个人可以逃离 离出口的最短路径不超过时间的人数(2)最慢游客离开要多少时间 离出口最远的游客。(有游客才求)#include <cstdio>#include <cstring>#include &l

2018-01-26 19:52:25 283

原创 (2018.1.25上午【纪雅零基础 NOIP2007 】模拟赛)

今天花了些时间完成这些题。(虽然都很水)JZOJ NO.1【NOIP2007】奖学金思路:快排代码如下#include <cstdio>#include <algorithm>using namespace std;struct z{int c,m,e,s,u;}a[301]; int n;bool cmp(z x,z y){ i...

2018-01-26 19:25:38 352

原创 (洛谷 1359) 租用游艇#floyd#

分析:求最小代价floyd代码如下:#include <cstdio>#include <cstring>using namespace std;int f[201][201],n;int main(){ scanf("%d",&n); memset(f,0x7f,sizeof(f));

2018-01-25 14:31:55 373

原创 #二分# (洛谷 3道题二分答案)1843 1873 2440 木材加工 砍树 奶牛晒衣服

上一次讲了两道例题,这一次就再讲3道题。上次说过分为最小值最大和最大值最小 2440木材加工,最小值最大 “最小值的最大长度”代码如下#include <cstdio>#include <algorithm>using namespace std;int l,r,n,m,a[100001]; long long sum;int main(){...

2018-01-25 00:52:08 297

原创 #hash#(洛谷 1102)A-B数对

copy一下题目是这样的:给出一串数以及一个数字C,要求计算出所有A-B=C的数对的个数。(不同位置的数字一样的数对算不同的数对)特别是后面这句话特别重要,它告诉我们重复是算的、 A-B=C 那么 A-C=B 所以就把A的个数累加,然后把A减去C就可以了,B的值的和就是答案。 当然内存才是最重要的。所以就找到了一个map 这样就简单的表达出来了#include <c...

2018-01-21 13:28:53 470

原创 #二分#(洛谷 1824)进击的奶牛

二分答案其实就是丢瓶盖最小值最大具体请看http://blog.csdn.net/sugar_free_mint/article/details/79114637 然后其实道理是相通的。 最小值:最小距离 最大值:最大距离 检验部分:看能拿几个瓶盖#include <cstdio>#include <algorithm>#define A ...

2018-01-21 13:09:05 696

原创 #模拟#(洛谷 1258)小车问题

甲、乙两人同时从A地出发要尽快同时赶到B地。出发时A地有一辆小车,可是这辆小车除了驾驶员外只能带一人。已知甲、乙两人的步行速度一样,且小于车的速度。问:怎样利用小车才能使两人尽快同时到达。代码如下#include <cstdio>using namespace std;double s,v1,v2,x;int main(){ scanf("%lf%lf%l...

2018-01-21 13:02:45 516

原创 #二分#(两道二分标致题)(洛谷 1182 1316)数列分段Section II 丢瓶盖

今天就稍微讲一下二分二分主要就是运用于查找,最小值最大和最大值最小 其中后面两种就是我们今天要讲的。(二分答案)伪代码while (l<=r){ int mid=(l+r)>>1; if (check(mid)) l=mid+1; else r=mid-1; } 当最小值最大时输出r否则输出l 然后其实最重要的是初值和...

2018-01-21 09:10:13 456

原创 #模拟#(洛谷 1115)最大子段和

给出一段序列,选出其中连续且非空的一段使得这段和最大。一开始肯定会想到二重循环 for (int i=1;i<=n;i++) for (int j=i;j<=n;j++)求和,求最大值 人之常情 不过n<=200000 只能用一重循环。 首先这些数可能是负数。 所以初始化为-10001是可以的 然后如果变成了负数等于删除该段。否则求最大值代码如下...

2018-01-20 10:34:05 280

原创 (洛谷 2296)寻找道路#spfa#

前言Thank you for http://blog.csdn.net/mr_wuyongcong’s help再一次重新声明http://blog.csdn.net/sugar_free_minthttp://blog.csdn.net/mr_wuyongcongThey are friends!!!!!不扯淡了题目描述:在有向图G ...

2018-01-13 16:59:46 318

原创 (洛谷 1462)通往奥格瑞玛的道路#spfa,二分#

首先,金币可以无限花。但是血量是固定的。so关于求金币的答案二分,用spfa,如果使用金币最大值的最小值,满足血量条件,break特别坑的,计算血量用longlongbecause AFK会爆掉#include <cstdio>#include <algorithm>#include <cstri

2018-01-13 15:22:49 357

原创 (ssl 1346)电车#spfa#

因为第一个数字不用切换开关,so 后面的权值为1 所以spfa start#include <cstdio>using namespace std;struct lo{ int u,v,w,next;}a[10001]; int m,n,l,r,t,q,x,d[101],list[101],ls[101];bool v[101];void add(...

2018-01-13 14:41:29 187

原创 (洛谷 1144)最短路计数#spfa#

虽然bfs可以过,但是为了……所以就用spfa首先有两个bug,(1)重边,所以邻接矩阵绝对是错的。 但是邻接表是不需要判断这种简单的bug的 (2)自环,so easy 然后数据范围 对于100%的数据,N<=1000000,M<=2000000。 所以循环队列是必须的。#include <cstdio>using namespace st...

2018-01-13 13:53:49 288

原创 (洛谷 3371)【模(mú)板】单源最短路径#spfa#

首先floyd绝对是无能为力了dijsktra和spfa choose one不过为了介绍spfaO(KE)(适合稀疏图) 首先是不精简版#include <cstdio>using namespace std;struct q{ int x,y,w,next;}a[500001];int n,m,l,d[500001],t,list[5000...

2018-01-13 12:04:41 981

原创 (ssl 1500)最短路上的统计#floyd#

容我copy题目一个无向图上,没有自环,所有边的权值均为1,对于一个点对(a,b),我们要把所有a与b之间所有最短路上的点的总个数输出。 ok分析:求最短路径经过的点数首先floyd是很简单的,f[i][j]=min(f[i][j],f[i][k]+f[k][j])然后就会想到它既然赋值了,f[i][j]=f[i][k]+f[k][j]就说明它经过了这个点。 代码如...

2018-01-13 11:10:43 172

原创 (ssl 1615)Frogger#floyd,kruskal,并查集#

好想copy题目分析:从Freddy到Fiona的路径中,一条路径最大的边的最小值其实就是变种floydf[i][j]=min(f[i][j],max(f[i][k],f[k][j]))最大值最小首先第一波福利(n^3)#include <cstdio>#include <algorithm>#include <cmat

2018-01-13 11:04:40 210

原创 (洛谷 3367)【模(mú)板】并查集

其实就是洛谷3366降低了点层次#include <cstdio>using namespace std;int fat[10001],n,m;int father(int x){ if (fat[x]==x) return x; else return fat[x]=father(fat[x]);}bool un(bool z,int x,int y...

2018-01-13 08:29:53 5730

原创 (洛谷 3366)【模(mú)板】最小生成树#kruskal,并查集#

事实上这道题还是比较水的Prim和Kruskal任选一个我感觉还是Kruskal好一点(并查集)首先要排序先#include <cstdio>#include <algorithm>using namespace std;struct uni{ int u,v,w;}e[200001],t; int n,p=1,m,

2018-01-13 08:27:54 1300

原创 (ssl 1762)工厂的烦恼#floyd#

其实求的就是有向无环图最长路(floyd不用说了)#include <cstdio>using namespace std;int n,m,max,x,y,t,g[101][101];int main(){ scanf("%d%d",&n,&m); for (int i=1;i<=m;i++) scanf(&am

2018-01-12 21:07:11 201

原创 (ssl 1021 洛谷 1037)产生数#floyd#

首先这道题明显的 最短路径(难道还用深搜)算了,还是copy题目吧 给出一个整数 n 和 k 个规则。 经过任意次的变换(0次或多次),能产生出多少个不同整数。仅要求输出个数。根据乘法原理答案等于0~9的状态数乘积(如果规则的右边可以为0那就要特判了)n超过30位,根据分析最大答案也就10^30了。 所以数组只用开到三十(为了保险,开到一百) so其实虽然我知道__int ...

2018-01-12 19:59:24 295

原创 (ssl 1761)城市问题#dijkstra#

Description   设有n个城市,依次编号为0,1,2,……,n-1(n<=100),另外有一个文件保存n个城市之间的距离(每座城市之间的距离都小于等于1000)。当两城市之间的距离等于-1时,表示这两个城市没有直接连接。求指定城市k到每一个城市i(0<=I,k<=n-1)的最短距离。因为从一个地方开始,so floyd就显得too slow所以就用d...

2018-01-11 17:41:32 290

原创 (ssl 1760)商店选址问题#floyd,dijkstra#

Description 给出一个城市的地图(用邻接矩阵表示),商店设在一点,使各个地方到商店距离之和最短。最短路径,floyd或dijsktra#include <cstdio>using namespace std;int n,f[201][201],s,min=2147483647;int main(){ scanf("%d",&n);

2018-01-11 17:37:26 301

原创 (ssl 1624)小萨的烦恼#floyd#

若小萨他们不能在限定时间内赶回学校,那么输出You are day dreaming! 否则,输出一个整数,为他们所需要花费的最少时间。所以这是一道求最短路径的题目(主要是不直接连通,坐车要和走路配套)虽然可以用dijsktra(幸好没拼错) 但是floyd简洁!!#include <cstdio>#include <algorithm>usi...

2018-01-11 17:34:24 210

原创 (ssl 1614)医院设置#floyd#

求最小路径和然后我还是喜欢格式上简洁的floyd#include <cstdio>using namespace std;int g[102][102],a[102],t,x,y,n,s,min=2147483647;int main(){ scanf("%d",&n); for (int i=0;i<=n+1;i++)

2018-01-10 17:50:06 209

原创 (ssl 1613)最短路径#floyd,dijkstra#

找出从一点到另一点之间的最短路径。那这道题其实求的就是单源最短路径但对于蒟蒻来说Floyd是必须的#include <cstdio>#include <cstring>#include <cmath>using namespace std;int o(int t){return t*t;}int n,m

2018-01-10 17:47:12 323

原创 (ssl 2348)连接格点#kruskal,并查集#

Description 有一个M行N列的点阵,相邻两点可以相连。一条纵向的连线花费一个单位,一条横向的连线花费两个单位。某些点之间已经有连线了,试问至少还需要花费多少个单位才能使所有的点全部连通。分析:容我解释测试点所以,既然求最小生成树,纵向优先。那怎样连呢。Kruskal首先一件重要的事情就是并查集是一维的。所以(x,y)用(x-1)*n...

2018-01-06 14:28:19 308

原创 (ssl 2346)联络员#kruskal,并查集#

Description随着Tyvj网站的逐步壮大,管理员的数目也越来越多,现在你身为Tyvj管理层的联络员,希望你找到一些通信渠道,使得管理员两两都可以联络(直接或者是间接都可以)。Tyvj是一个公益性的网站,没有过多的利润,所以你要尽可能的使费用少才可以。 目前你已经知道,Tyvj的通信渠道分为两大类,一类是必选通信渠道,无论价格多少,你都需要把所有的都选择上;还有一类是选择性的通信渠道,你...

2018-01-06 14:16:13 292

原创 (ssl 2345)繁忙的都市#prim#

分析:第一个比较容易理解,连通图的最小生成树边数=点数-1第二个求的是最小生成树中权值最大的一个。#include <cstdio>#include <cctype>#include <climits>#include <cstring>using namespace s

2018-01-06 13:43:45 275

原创 (ssl 1562)局域网#prim#

Description  某个局域网内有n(n<=100)台计算机,由于搭建局域网时工作人员的疏忽,现在局域网内的连接形成了回路,我们知道如果局域网形成回路那么数据将不停的在回路内传输,造成网络卡的现象。因为连接计算机的网线本身不同,所以有一些连线不是很畅通,我们用f(i,j)表示i,j之间连接的畅通程度(f(i,j)<=1000),f(i,j)值越小表示i,j之间连接越通畅,f(...

2018-01-06 13:38:55 366

原创 ssl 1612 最优布线问题#prim#

Description学校有n台计算机,为了方便数据传输,现要将它们用数据线连接起来。两台计算机被连接是指它们之间有数据线连接。由于计算机所处的位置不同,因此不同的两台计算机的连接费用往往是不同的。 当然,如果将任意两台计算机都用数据线连接,费用将是相当庞大的。为了节省费用,我们采用数据的间接传输手段,即一台计算机可以间接的通过若干台计算机(作为中转)来实现与另一台计算机的连接。 现在...

2018-01-06 13:23:03 365

空空如也

空空如也

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

TA关注的人

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