洛谷
wwt9b15bs
这个作者很懒,什么都没留下…
展开
-
【题解】洛谷P2024[NOI2001]食物链(同POJ1182)(8月7日校赛 并查集)并查集
思路参考了大佬题解图文并茂非常详细#include<cstdio>#define _rep(i,a,b) for(int i=(a);i<=(b);i++)const int N=5e4+10;int set[N*3];int n,k;int a,b,c;int cnt=0;int findset(int x){ return set[x]==x?...原创 2018-08-18 07:37:54 · 169 阅读 · 0 评论 -
【题解】洛谷P1525关押罪犯[NOIP2010] 并查集+贪心
题目链接 最开始我写的最小生成树……后来发现理解错题意了 参考了大佬题解其中合并敌人的敌人这种操作非常巧妙#include<cstdio>#include<cstring>#include<climits>#include<cstring>#include<algorithm&原创 2018-08-18 07:38:00 · 236 阅读 · 0 评论 -
【题解】洛谷P1052过河[NOIP2005T2] 线性DP
题目链接题目描述在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧。在桥上有一些石子,青蛙很讨厌踩在这些石子上。由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数轴上的一串整点: 0,1,…,L0,1,…,L (其中 LL 是桥的长度)。坐标为 00 的点表示桥的起点,坐标为 LL 的点表示桥的终点。青蛙从桥的起点开始,不停的向终点方向跳跃。...原创 2018-08-13 07:03:11 · 324 阅读 · 0 评论 -
【题解】洛谷P1090合并果子[NOIP2004] 优先队列+贪心
每次选和最小的两堆合并就好。在被之前的一道堆优化贪心的比赛题蹂躏之后感觉有经验了,之前看过这题都没啥思路的。#include<cstdio>#include<queue>#define _rep(i,a,b) for(int i=(a);i<=(b);i++)using namespace std;int main(){ //freo原创 2018-08-13 07:01:17 · 270 阅读 · 0 评论 -
【题解】洛谷P1579哥德巴赫猜想(升级版) 线性筛
题目链接#include<cstdio>#include<algorithm>using namespace std;const int N=2e4;int prime[N+10],p=0;bool iscomp[N+10];void primetable(){ for(int i=2;i<=N;i++) {原创 2018-08-19 09:49:25 · 373 阅读 · 0 评论 -
【题解】洛谷P2573[SCOI2012](同sdoj3730)(2018-08-13集训T3)
题目链接(洛谷) 题目链接(sdoj) 没有想到重建图还有按照高度排序……光荣爆零 sdoj上测要加fread,不然会T一个点(这数据太强了)#include<cstdio>#include<cstring>#include<algorithm>#include&am原创 2018-08-14 06:52:38 · 193 阅读 · 0 评论 -
【题解】洛谷P1100高低位交换 位运算
题目链接 位运算基本操作,做一下加深印象#include<cstdio>typedef unsigned int ui;int main(){ ui n,a,b; scanf("%u",&n); a=n&((1<<17)-1); b=n>>16;原创 2018-08-19 09:49:33 · 288 阅读 · 0 评论 -
【题解】洛谷P1003铺地毯[NOIP2011] 模拟
题目链接 从后往前推,找到一个覆盖了所求点的地毯编号直接输出#include<iostream>#include<cstdio>using namespace std;int a[500000],b[500000],g[500000],k[500000]; int main(){ //freopen("in.txt","r"原创 2018-08-20 07:27:54 · 299 阅读 · 0 评论 -
【题解】洛谷P1056排座椅[NOIP2008普及] 模拟
题目链接#include<cstdio>#include<algorithm>using namespace std;const int N=1010;int x[N],y[N],xn[N<<1],yn[N<<1];int getmax(int *a)原创 2018-08-21 07:08:21 · 416 阅读 · 0 评论 -
【题解】洛谷P1067多项式输出[NOIP2009普及] 模拟
题目链接#include<cstdio>int xs[110];int main(){ //freopen("in.txt","r",stdin); int n,cs; scanf("%d",&n); for(int i=1;i<=n;i++) scanf(&原创 2018-08-20 07:27:58 · 348 阅读 · 0 评论 -
【题解】洛谷P1328[NOIP2014]生活大爆炸版石头剪刀布 模拟
题目链接#include<cstdio>int judge[5][5]={{0,-1,1,1,-1}, {1,0,-1,1,-1}, {-1,1,0,-1,1}, {-1,-1,1,0,1}, {1,1,-1,-1,0}};int ...原创 2018-08-20 07:28:02 · 342 阅读 · 0 评论 -
【题解】洛谷P1540机器翻译[NOIP2010] 模拟+队列
题目链接#include<cstdio>#include<queue>using namespace std;int vis[1010];int main(){ //freopen("in.txt","r",stdin); queue<int>q; int m,n;原创 2018-08-21 07:07:49 · 300 阅读 · 0 评论 -
【题解】洛谷P1563[NOIP2016]玩具谜题 模拟
题目链接#include<cstdio>struct node{ int fa; char name[20];}q[100100];int main(){ freopen("testdata.in","r",stdin); int n,m,i,f,num,h=0; scanf(&q原创 2018-08-21 07:08:15 · 208 阅读 · 0 评论 -
【题解】洛谷P1896互不侵犯[SCOI2005] 状压DP
题目链接 将任意一行的一个状态看作是n位的二进制数,1表示放了国王,0表示没有放 dp[i][j][k] 表示前i行第j个状态,已经放置了k个国王的方案数; can[i]第i个状态的数字,num[i]第i个状态的1的个数;#include<cstdio>#include<cstring>using namespace std;typedef long l...原创 2018-08-14 06:56:48 · 206 阅读 · 0 评论 -
【题解】洛谷P2831[NOIP2016]愤怒的小鸟 状压DP
题目链接 dp[i]表示i状态时所需要的最少的小鸟数,state[i]表示第i条抛物线所打掉的小猪状态, dp[i|state[j]]=min(dp[i|state[j]],dp[i]+1)#include<cstdio>#include<cstring>#include&amp原创 2018-08-14 06:53:55 · 256 阅读 · 0 评论 -
【题解】洛谷P3628[APIO2010]特别行动队 斜率优化
第一道AC的紫题,纪念一下#include<cstdio>typedef long long ll;const int N=1e6+10;ll sum[N],dp[N],q[N];int a,b,c,n;ll gety(int j,int k){ return (dp[j]+a*sum[j]*sum[j]-dp[k]-a*sum[k]*sum[k]);}l...原创 2018-08-14 06:58:36 · 264 阅读 · 0 评论 -
【题解】洛谷P1023税收与补贴问题[NOIP2000] 模拟
题目链接 没读明白题,学习了大佬博客1 大佬博客2#include<cstdio>#include<cmath>#include<algorithm>using namespace std;#define INF 0x3f3f3f3f#define _rep(i,a,b) for(int i=(a);i<=(b);i++)cons原创 2018-08-21 07:08:51 · 684 阅读 · 0 评论 -
【题解】洛谷P3211XOR和路径[HNOI2011] 概率DP+高斯消元
题目链接 有点像以前写过的一道题,但是写着写着感觉不对劲……大佬博客写的很好,学习了。写完此题赶紧去复习一波高斯消元#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define _rep(i,a,b) for(int i=(a);i<=(b);i原创 2018-08-19 09:09:12 · 190 阅读 · 0 评论 -
【题解】洛谷P1031均分纸牌[NOIP2002] 模拟
题目链接/*模拟 从前往后扫描数组,判断距离平均数还差几张如果小于平均数,则用后面那张补过来如果大于平均数,则往后补*/#include<cstdio>int a[110];int main(){ int t,n,i,step=0,sum=0; scanf("%d",&n); for(i=1;i<=n;i++){ ...原创 2018-08-21 07:09:01 · 257 阅读 · 0 评论 -
【题解】洛谷P1042乒乓球[NOIP2003普及] 模拟+队列
题目链接 采用队列模拟 记住要认真审题……像我这样上来就写,来来回回一道辣鸡题错好几次……#include<cstdio>#include<cstring>#include<iostream>#include<queue>#include<cmath>using names原创 2018-08-21 07:09:05 · 557 阅读 · 0 评论 -
【题解】洛谷P1086花生采摘[NOIP2004普及] 模拟+优先队列
题目链接 做个普及的模拟还AC不了,参考了大佬博客调出错来……我怎么这么菜啊#include<cstdio>#include<queue>#include<cmath>using namespace std;#define _rep(i,a,b) for(int i=(a);i<=(b);i++)struct node{ int原创 2018-08-22 07:50:21 · 308 阅读 · 0 评论 -
【题解】洛谷P1098字符串的展开[NOIP2007] 模拟
题目链接 操作较多不要漏#include<cstdio>#include<cstring>#include<cctype>#define _rep(i,a,b) for(int i=(a);i<=(b);i++)#define rep_(i,a,b) for(int i=(a);i>=(b);i--)int p1,p2原创 2018-08-22 07:50:33 · 207 阅读 · 0 评论 -
【题解】洛谷P1080国王游戏[NOIP2012Day1T2] 贪心
题目链接 按照每个大臣左右手上的数的乘积从小到大排序,就是最优排队方案 可以使用微扰证明,详见李煜东的算法竞赛进阶指南#include<cstdio>#include<algorithm>#include<cstring>using namespace std;struct node{ int a,b,c;}q[2000];int a...原创 2018-08-27 15:53:37 · 376 阅读 · 0 评论 -
【题解】洛谷P2280[HNOI2003]激光炸弹 前缀和
题目链接 预处理二维前缀和#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define INF 0x3f3f3f3f#define _rep(i,a,b) for(int i=(a);i<=(b);i++)int n,r,x,y,v;i原创 2018-08-23 07:11:36 · 225 阅读 · 0 评论 -
【题解】洛谷P1028数的计算[NOIP2001(或以前)普及] 递推
题目链接#include<iostream>using namespace std;long long f[100000];int main(){ int n; cin>>n; f[1]=1;f[2]=2; for(int i=3;i<=n;i++){ if(i%2==1)f[i]=f[i-1]; ...原创 2018-08-23 07:11:46 · 297 阅读 · 0 评论 -
【题解】洛谷P1036选数[NOIP2002普及] 递归
题目链接#include<cstdio>int n,k;int a[25];int vis[25];int ans;bool judge(int sum){ if(sum==1)return 0; for(int i=2;i*i<=sum;i++) if(sum%i==0)return 0; return 1;}void dfs...原创 2018-08-24 07:45:51 · 628 阅读 · 0 评论 -
【题解】洛谷P1217[USACO1.5]回文质数 枚举
题目链接#include <bits/stdc++.h>using namespace std;long long sushu(long long x,long long y){ int i,i1,i2,i3,i4,flag=0; long long c,palindrom; if((x==5)&&(y&a原创 2018-08-24 07:45:55 · 386 阅读 · 0 评论 -
【题解】洛谷P1149火柴棒等式[NOIP2008] 枚举
题目链接#include<cstdio>int a[10]={6,2,5,5,4,5,6,3,7,6};int n;inline int getcnt(int x){ if(x==0)return a[0]; int ret=0; while(x) { ret+=a[x%10]; x/=10; } ...原创 2018-08-25 06:03:04 · 220 阅读 · 0 评论 -
【题解】洛谷P1111 并查集
题目链接 将公路按建成时间升序排序。维护并查集是增加一个记录子树个数的数组size。合并时让编号小的作为父亲,这样可以根据size[1]来判断是否全部通车。#include<cstdio>#include<algorithm>using namespace std;#define _rep(i,a,b) for(int i=(a);i<=(b);i++...原创 2018-09-01 08:13:31 · 241 阅读 · 0 评论 -
【题解】洛谷P1955[NOI2015](同bzoj4195) 并查集+离散化
题目链接 对于每个相等的约束条件,合并所在集合;对于不等的约束条件,若两个变量处于同一集合内,则不可能被满足。#include<cstdio>#include<algorithm>using namespace std;#define _rep(i,a,b) for(int i=(a);i<=(b);i++)#define _for(i,a,b) f...原创 2018-08-28 19:34:17 · 158 阅读 · 0 评论 -
【题解】洛谷P2512[HAOI2008]糖果传递(同bzoj1045/CH0807) 排序+前缀和
题目链接 第一眼感觉像均分纸牌,但是对于具体操作有点迷。大佬题解的思路讲的非常清晰,看了一下思路感觉这个推导很巧妙啊,结论推出来就是水题了。#include<cstdio>#include<algorithm>#include<cmath>using namespace std;#define _rep(i,a,b) for(int i=(a)...原创 2018-09-04 09:12:02 · 252 阅读 · 0 评论 -
【题解】洛谷P1309瑞士轮[NOIP2011普及T3] 归并排序
题目链接 对赢一方和输一方分别建立数组,再归并排序#include<cstdio>#include<algorithm>using namespace std;#define _rep(i,a,b) for(int i=(a);i<=(b);i++)const int N=2e5+10;int n,R,q;int tw,tl;struct no...原创 2018-09-01 08:13:37 · 416 阅读 · 0 评论 -
【题解】洛谷P1181数列分段 贪心
题目链接#include<cstdio>int a[100010];int main(){ int sum=0,i,n,m,cnt=1; scanf("%d%d",&n,&m); for(int i=1;i<=n;i++){ scanf("%d",&a[原创 2018-09-01 08:13:41 · 221 阅读 · 0 评论 -
【题解】洛谷P1208[USACO1.3] 贪心
题目链接#include<cstdio>#include<iostream>using namespace std; struct node{ int p,i;}q[10000];int main(){ //freopen("in.txt","r",stdin); int i,j,x,ans=0,k,n,m;原创 2018-09-01 08:13:46 · 213 阅读 · 0 评论 -
【题解】洛谷P1223排队接水 贪心
题目链接#include<cstdio>struct node{ int id,t;}q[2000],temp;int main(){ //freopen("in.txt","r",stdin); int n,i,j; long long sum=0; scanf("%d",&n);原创 2018-09-01 08:13:50 · 368 阅读 · 0 评论 -
【题解】洛谷P1094纪念品分组[NOIP2007普及] 贪心
题目链接#include<cstdio>#include<algorithm>using namespace std;int a[50000],b[50000];int cmp(const int&a,const int&b){ return a>=b;}int main(){ int cnt=0,j,x,sum,i,w原创 2018-09-01 08:13:58 · 227 阅读 · 0 评论 -
【题解】洛谷P1803凌乱的yyy 贪心
题目链接#include<cstdio>#include<algorithm>using namespace std;struct node{ int a,b;}q[1000010];int cmp(const node&x,const node&y){ return x.b<y.b;}int main(){原创 2018-09-01 08:14:02 · 183 阅读 · 0 评论 -
【题解】洛谷P1031均分纸牌[NOIP2002] 贪心+模拟
题目链接/*模拟 从前往后扫描数组,判断距离平均数还差几张如果小于平均数,则用后面那张补过来如果大于平均数,则往后补*/#include<cstdio>int a[110];int main(){ int t,n,i,step=0,sum=0; scanf("%d",&n); for(i=1;i<=n;i++){ ...原创 2018-09-01 08:14:05 · 224 阅读 · 0 评论 -
【题解】洛谷P1196[NOI2002]银河英雄传说 带权并查集
题目链接 改了快一个小时过不了样例,交上去AC了……可能这就是权贵吧#include<cstdio>#include<cmath>#define _rep(i,a,b) for(int i=(a);i<=(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 · 226 阅读 · 0 评论 -
【题解】洛谷P1226[模板]快速幂取模
题目链接#include<cstdio>using namespace std;int main(){ long long b,p,k; scanf("%lld %lld %lld",&b,&p,&k); long原创 2018-09-02 06:54:30 · 198 阅读 · 0 评论