noip2013day2题解
来源:互联网 发布:淘宝上好的家具店 编辑:程序博客网 时间:2024/06/05 07:50
积木大赛:
#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>using namespace std;int getint(){int i=0;char c;for(c=getchar();c<'0'||c>'9';c=getchar());for(;c>='0'&&c<='9';c=getchar())i=(i<<3)+(i<<1)+c-'0';return i;}const int N=100005;int n,ans,a,b;int main(){//freopen("lx.in","r",stdin);n=getint();for(int i=1;i<=n;i++){b=getint();if(b>a)ans+=b-a;a=b;}cout<<ans;return 0;}花匠:
# include <iostream># include <algorithm># include <string># include <cstring># include <cmath># include <ctime># include <cctype># include <cstdlib># include <cstdio># include <vector># include <queue>using namespace std;long long Read(){long long i=0,f=1;char c=getchar();while(c>'9'||c<'0') {if(c=='-') f=-1; c=getchar();}while(c>='0'&&c<='9') {i=i*10+(c-'0'); c=getchar();}return f*i;}int dp[100005][2],h[100005],g[100005],n;//dp[i][0] 到第i位时所取的最大花朵数,且h[i]>h[i-1]; //dp[i][1] 到第i位时所取的最大花朵数,且h[i]<h[i-1];int main(){n=Read();for(int i=1;i<=n;++i) h[i]=Read();for(int i=1;i<=n;++i) dp[i][1]=dp[i][0]=1;for(int i=2;i<=n;++i){dp[i][0]=dp[i-1][0];dp[i][1]=dp[i-1][1];if(h[i]>h[i-1]) dp[i][0]=max(dp[i-1][0],dp[i-1][1]+1);if(h[i]<h[i-1]) dp[i][1]=max(dp[i-1][1],dp[i-1][0]+1);}cout<<max(dp[n][0],dp[n][1])<<endl;return 0;}
华容道:
# include <iostream># include <queue># include <cmath># include <vector># include <cstdio># include <cstring># include <algorithm>using namespace std;typedef long long ll;const int maxn=50;ll Read(){ll i=0,f=1;char c=getchar();while(c>'9'||c<'0') {if(c=='-') f=-1; c=getchar();}while(c>='0'&&c<='9') {i=i*10+(c-'0'); c=getchar();}return f*i;}struct node{int x,y,k,s;node(int x,int y,int k,int s) : x(x),y(y),k(k),s(s){}};ll n,m,q,ex,ey,sx,sy,tx,ty,ans=-1;ll Map[maxn][maxn], dis[maxn][maxn][5],move[maxn][maxn][5][5],dep[maxn][maxn];bool exist[maxn][maxn][5]={false},vis[maxn][maxn]={false};int turn(int i){if(i==1) return 2;if(i==2) return 1;if(i==3) return 4;if(i==4) return 3;}node go(node p,int i){node t=p;if(i==1) t.x--;if(i==2) t.x++;if(i==3) t.y--;if(i==4) t.y++;return t;}inline int BFS(node s,node t){memset(vis,false,sizeof(vis));if(s.x==t.x&&s.y==t.y) return 0;int all=1e6+7,tot=0;s.s=1;vis[s.x][s.y]=true;queue<node >Q;Q.push(s);while(!Q.empty()){node p=Q.front();Q.pop();for(int i=1;i<=4;++i){node now=go(p,i);if(now.x>0&&now.x<=n&&now.y>0&&now.y<=m&&!vis[now.x][now.y]&&Map[now.x][now.y]){ if(now.x==t.x&&now.y==t.y) all=min(now.s,all); else ++now.s,vis[now.x][now.y]=true,Q.push(now); }}}return all;}inline void initial(){memset(move,1e6+7,sizeof(move));for(int i=1;i<=n;++i) for(int j=1;j<=m;++j) { if(!Map[i][j]) continue; Map[i][j]=0; for(int k=1;k<=4;++k) for(int l=1;l<=4;++l) { node s=go(node(i,j,0,1),k);node t=go(node(i,j,0,1),l);if(!Map[s.x][s.y]||!Map[t.x][t.y]) continue;move[i][j][k][l]=BFS(s,t)+1; } Map[i][j]=1; }}int SPFA(node s,node t){memset(dis,1e6+7,sizeof(dis));memset(exist,false,sizeof(exist));queue<node >Q;if(s.x==t.x&&s.y==t.y) return 0;if(Map[s.x][s.y]==0||Map[t.x][t.y]==0) return -1;Map[s.x][s.y]=0;for(int i=1;i<=4;++i){node p=node(s.x,s.y,i,0);Q.push(p);exist[p.x][p.y][p.k]=true;dis[p.x][p.y][p.k]=BFS(node(ex,ey,0,1),go(s,i));}Map[s.x][s.y]=1;while(!Q.empty()){node now=Q.front();exist[now.x][now.y][now.k]=false;Q.pop();for(int i=1;i<=4;++i){node p=go(now,i);p.k=turn(i);if(dis[p.x][p.y][p.k]>dis[now.x][now.y][now.k]+move[now.x][now.y][now.k][i]){dis[p.x][p.y][p.k]=dis[now.x][now.y][now.k]+move[now.x][now.y][now.k][i];if(!exist[p.x][p.y][p.k]) Q.push(p), exist[p.x][p.y][p.k]=true;}} }ll ans=1e6+7;for(int i=1;i<=4;i++) ans=min(ans,dis[t.x][t.y][i]);return ans;}int main(){n=Read(),m=Read(),q=Read();for(int i=1;i<=n;++i) for(int j=1;j<=m;++j) Map[i][j]=Read();initial();for(int i=1;i<=q;++i){ex=Read(),ey=Read(),sx=Read(),sy=Read(),tx=Read(),ty=Read();ans=SPFA(node(sx,sy,0,0),node(tx,ty,0,0));if(ans==1e6+7) printf("-1\n");else printf("%d\n",ans);}return 0;}
阅读全文
0 0
- noip2013day2题解
- noip2013day2
- noip2013day2
- 题解
- 题解
- 题解
- 题解
- 题解
- 题解
- 题解
- 题解
- 题解
- 题解
- 题解
- 题解~~~~
- 题解。。。。
- 题解
- 题解
- 分类算法之决策树ID3详解
- leetcode__02
- 字符与字节的关系。
- 将一个ANSI编码格式纯文本文件以UTF-8的形式读到另一个文件中去
- JavaScript 模板方法模式(es6)
- noip2013day2题解
- HDU6153-A Secret
- 关于两个数相乘, 求其为多少进制
- HDU6152 Friend-Graph【模拟】
- Makefile经典教程(掌握这些足够)
- 2018网易内推笔试-等差数列(python)
- gcc的参数 -I和-L 的用法
- Adapter与Activity通过接口回调进行交互
- 「网络流 24 题」航空路线问题