/*
后天就要复赛了啊啊啊啊啊.
可能是因为我是一个比较念旧的人吧.
讲真 还真是有点不舍.
转眼间一年的时间就过去了.
2015.12-2016.11.
OI的一年.
NOIP gryz RP++.
*/

水灾(sliker.cpp/c/pas) 1000MS 64MB

大雨应经下了几天雨,却还是没有停的样子。土豪CCY刚从外地赚完1e元回来,知道不久除了自己别墅,其他的地方都将会被洪水淹没。

CCY所在的城市可以用一个N*M(N,M<=50)的地图表示,地图上有五种符号:“. * X D S”。其中“X”表示石头,水和人都不能从上面经过。“.”表示平原,CCY和洪水都可以经过。“*”表示洪水开始地方(可能有多个地方开始发生洪水)。“D”表示CCY的别墅。“S”表示CCY现在的位置。

CCY每分钟可以向相邻位置移动,而洪水将会在CCY移动之后把相邻的没有的土地淹没(从已淹没的土地)。

求CCY回到别墅的最少时间。如果聪哥回不了家,就很可能会被淹死,那么他就要膜拜黄金大神涨RP来呼叫直升飞机,所以输出“ORZ hzwer!!!”。

输入文件 sliker.in

输出文件 sliker.out

Input

3 3

D.*



.S.

Output

3

Input

3 3

D.*



..S

Output

ORZ hzwer!!!

Input

3 6

D…*.

.X.X..

….S.

Output

6

/*
寒假原题.
两遍bfs即可.
论bfs中标志数组的重要性.
然而当时我只打了个表.....
然后学长讲了以后我就懵逼了.
发现自己成长了好多(这都是后话...)
*/
#include<iostream>
#include<cstdio>
#include<queue>
#define MAXN 51
using namespace std;
int n,m,s[MAXN][MAXN],sx,sy,tx,ty;
char g[MAXN][MAXN];
bool b[MAXN][MAXN];
struct node{int x,y,t;};
int dx[5]={0,1,0,-1,0};
int dy[5]={0,0,1,0,-1};
queue<node>q;
inline void slovebfs()
{
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++) s[i][j]=1e5;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(g[i][j]=='*') q.push((node){i,j}),s[i][j]=0;
node u;int x,y,xx,yy;
while(!q.empty())
{
u=q.front();q.pop();x=u.x,y=u.y;
for(int i=1;i<=4;i++)
{
xx=x+dx[i],yy=y+dy[i];
if(xx>=1&&xx<=n&&yy>=1&&yy<=m&&g[xx][yy]!='X'&&g[xx][yy]!='D')
{
if(s[xx][yy]>s[x][y]+1)
s[xx][yy]=s[x][y]+1,q.push((node){xx,yy});
}
}
}
}
inline void bfs()
{
int x,y,xx,yy;
node u;
q.push((node){sx,sy,0});
b[sx][sy]=true;
while(!q.empty())
{
u=q.front();q.pop();
x=u.x,y=u.y;
if(x==tx&&y==ty){printf("%d",u.t);return;}
for(int i=1;i<=4;i++)
{
xx=x+dx[i],yy=y+dy[i];
if(xx>=1&&xx<=n&&yy>=1&&yy<=m&&!b[xx][yy]&&g[xx][yy]!='X')
{
if(u.t+1<s[xx][yy])
b[xx][yy]=true,q.push((node){xx,yy,u.t+1});
}
}
}
printf("ORZ hzwer!!!");
}
int main()
{
freopen("sliker.in","r",stdin);
freopen("sliker.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
cin>>g[i]+1;
for(int j=1;j<=m;j++)
{
if(g[i][j]=='S') sx=i,sy=j;
if(g[i][j]=='D') tx=i,ty=j;
}
}
slovebfs();
bfs();
return 0;
}

某种数列问题 (jx.cpp/c/pas) 1000MS 256MB

众所周知,chenzeyu97有无数的妹子(阿掉!>_<),而且他还有很多恶趣味的问题,继上次纠结于一排妹子的排法以后,今天他有非(chi)常(bao)认(cheng)真(zhe)去研究一个奇怪的问题。有一堆他的妹子站成一排,然后对于每个妹子有一个美丽度,当然美丽度越大越好,chenzeyu97妹子很多,但是质量上不容乐观,经常出现很多美丽度为负数的妹子(喜闻乐见),chenzeyu97希望从一排妹子里找出3队连续的妹子,使她们的美丽度和最大。注意,一个妹子不能被编入多个队伍而且一定要拿出三队,不然czy会闲着没事做~。

简单滴说就是:

给定一个数列,从中找到3个无交集的连续子数列使其和最大。

【输入文件】

第一行一个数n,表示数列长度。

接下来有n行,每行一个数,第i行为第i个数。

【输出文件】

仅有一个数,表示最大和。

【样例输入】 jx.in

10

-1

2

3

-4

0

1

-6

-1

1

-2

【样例输出】 jx.out

7

【样例说明】

第一队妹子取2,3。

第二队妹子取0,1。

第三队妹子取1。

【数据范围】

请大家放心,虽然chenzeyu97妹子无数,但是这次他叫来的个数n是有限的。=v=

对于30%的数据,妹子数不大于200。

对于60%的数据,妹子数不大于2000。

对于100%的数据,妹子数1000000。

而且,由于chenzeyu97没有CCR那样的影响力,所以他的妹子选完的最大美丽度和不超过maxlongint。(注:CCR随便选就爆long long,因为他是把妹狂魔=V=)。

/*
一开始分别跑了三次最大子段和.
骗了骗大数据的分(只要正数段数>=3就对).
然后正解还是比较好想的.
然而一开始我竟然凭第六感认为内存不够orz...
闲的没事儿滚动一下...
*/
#include<iostream>
#include<cstring>
#include<cstdio>
#define MAXN 1000001
#define LL long long
using namespace std;
LL f[2][4][2],n,a[MAXN],ans;
LL read()
{
LL x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9') x=x*10+ch-48,ch=getchar();
return x*f;
}
int main()
{
freopen("jx.in","r",stdin);
freopen("jx.out","w",stdout);
n=read();
memset(f,-127/3,sizeof f);
f[0][0][0]=0;
for(int i=1;i<=n;i++) a[i]=read();
for(int i=1;i<=n;i++)
for(int j=0;j<=min(i,3);j++)
{
f[i&1][j][0]=max(f[(i-1)&1][j][0],f[(i-1)&1][j][1]);
if(j)f[i&1][j][1]=max(f[(i-1)&1][j-1][0],
max(f[(i-1)&1][j-1][1],f[(i-1)&1][j][1]))+a[i];
else f[i&1][j][0]=a[i];
}
ans=max(f[n&1][3][0],f[n&1][3][1]);
cout<<ans;
return 0;
}

11.17 模拟赛&&day-2的更多相关文章

  1. 9.11 myl模拟赛

    9.11 myl 模拟赛 100 + 100 + 0 第一题耗费了太多的时间,导致最后一题没有时间想,直接去写了暴力,而且出题人没有给暴力分.... Problem 1. superman [题目描述 ...

  2. 2017.6.11 NOIP模拟赛

    题目链接: http://files.cnblogs.com/files/TheRoadToTheGold/2017-6.11NOIP%E6%A8%A1%E6%8B%9F%E8%B5%9B.zip 期 ...

  3. 2014.11.12模拟赛【美妙的数字】| vijos1904学姐的幸运数字

    美妙的数字(number.c/.cpp/.pas) 题目描述 黄巨大认为非负整数是美妙的,并且它的数值越小就越美妙.当然0是最美妙的啦. 现在他得到一串非负整数,对于每个数都可以选择先对它做二进制非运 ...

  4. 2014.11.12模拟赛【最小公倍数】| vijos1047最小公倍数

    最小公倍数(lcm.c/.cpp/.pas) 题目描述 给定两个正整数,求他们的最小公倍数. 样例输入 28 12 样例输出 84 数据范围 对于40%数据:1<=a,b<=10^9 对于 ...

  5. 11.7NOIP模拟赛解题报告

    心路历程 预计得分:\(50 + 100 + 100\) 实际得分:\(50 + 100 +100\) T2 T3两道数据结构题美滋滋,然而写完就过去\(3h\)美滋滋 T1数学题学弟们都会做Orzz ...

  6. 11.6NOIP模拟赛解题报告

    心路历程 预计得分:\(100 + 100 + 100 = 300\) 实际得分:\(100 +100 +100 = 300\) 学OI两年终于AK了一次qwq(虽然题目炒鸡水..) 纪念一下这令人激 ...

  7. 11.5NOIP模拟赛解题报告

    心路历程 预计得分:\(100 + 40 + 30 = 170\) 实际得分:\(100 +100 + 50 = 250\) 辣鸡数据毁我青春 T1一眼不会做感觉要凉 T2好像一波折半搜索就做完了 T ...

  8. 11.1NOIP模拟赛解题报告

    心路历程 预计得分:\(100 + 100 + 50\) 实际得分:\(100 + 100 + 50\) 感觉老师找的题有点水呀. 上来看T1,woc?裸的等比数列求和?然而我不会公式呀..感觉要凉 ...

  9. 11.7noip模拟赛

     题解:广义斐波那契数列 矩阵乘法 #include<iostream> #include<cstdio> #include<cstring> #define LL ...

随机推荐

  1. varnish 子程序流程

    VCL中主要动作: pass:当一个请求被pass后,这个请求将通过varnish转发到后端服务器,该请求不会被缓存,后续的请求仍然通过Varnish处理.pass可以放在vcl_recv 和vcl_ ...

  2. SIP 3pcc

    3PCC全称Third Party Call Control,中文即第三方电话呼叫控制,指的是由第三方控制者在另外两者之间建立一个会话,由控制者负责会话双方的媒体协商.3PCC是一种非常灵活的会话控制 ...

  3. Spring切面编程Aspect之@Before和@Around用法

    查看dao层使用的sql import java.util.Arrays; import org.apache.commons.lang.ArrayUtils; import org.aspectj. ...

  4. BigDecimal与Long、int之间的相互转换

    //bigDecimal 转换成 Long类型 public static Long bigDecimalToLong(BigDecimal b){ BigDecimal c = new BigDec ...

  5. 在eclipse导入项目的步骤

    1. Import 2. Next 3. 确定  选中copy projects into workspace    Finish 这样项目就导入进来了. 4.导入jar包 Configure Bui ...

  6. java引用传递,值传递

    2个interger的引用对象传给一个swap方法在方法内部进行交换 1.1 java中方法参数传值方式 java中方法传参数都是值传递的,只不过根据参数的类型是引用类型还是非引用类型 引用类型传递的 ...

  7. 【Distributed】限流技巧

    一.概述 1.1 高并发服务限流特技 1.2 为什么要互联网项目要限流 1.3 高并发限流解决方案 二.限流算法 2.1 计数器 2.2 滑动窗口计数 2.3 令牌桶算法 使用RateLimiter实 ...

  8. 第一章、VUE-挂载点-实例成员-数据-过滤器-文本指令-事件指令-属性指令-表单指令-01

    目录 路飞项目 vue vue 导读 vue 的优势 渐进式框架 引入 vue 实例成员 - 挂载点 el js 对象(字典)补充 实例成员 - 数据 data 实例成员 - 过滤器 filters ...

  9. 第二章、Django以及数据库的配置

    目录 第二章.Django以及数据库的配置 一.小白必会三板斧 二.静态文件配置 三.form表单 action和method参数可以写的形式 四.request对象及方法 五.django连接数据库 ...

  10. 随意软连接/home/users目录导致环境变量消失后的事故

    1 自己的用户zj下,把/home/zj 删除后用ln -s软连接其他目录,导致了当前用户的.bash_profile失效 2 解决思路 第一,删除软连接 rm -rf /home/zj   记住后面 ...