poj 2434;bzoj 1686 [Usaco2005 Open]Waves 波纹
Description



Input
Output
Sample Input
-3 0 1
0 0 2
Sample Output
-*------X
*-*-*---X
-o-*-*--X
o-----*-X
-o-*-*--X
*-*-*---X
-*------X
--------X

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std; int n,m1,m2,r,x,y,t,xx,yy,ti,ll,rr,qaq,i,j;
bool f;
int map[][];
void sp(){
while(ti--){
if (f){
yy++;
if (yy==m1||yy==m2) yy--,f=;
}else{
yy--;
if (yy==m1||yy==m2) yy++,f=;
}
}
}
void op(){
ll=max(,x-t),rr=min(,x+t);
for (i=ll;i<=rr;i++){
ti=min(i-(x-t),(x+t)-i);xx=i,yy=y;
f=;sp();
if (yy>=&&yy<=) map[xx][yy]+=qaq;
if (i==x-t||i==x+t) continue;
ti=min(i-(x-t),(x+t)-i);xx=i;yy=y;
f=;sp();
if (yy>=&&yy<=) map[xx][yy]+=qaq;
}
}
int main(){
scanf("%d%d%d%d",&n,&m1,&m2,&r);
m1+=;m2+=;
while(n--){
scanf("%d%d%d",&y,&x,&t);
x+=;y+=;
t=r-t;
qaq=;op();
t-=;
if (t>=) qaq=-,op();
}
for (i=;i>=;i--){
for (j=;j<=;j++)
if (j==m1||j==m2) printf("X");else if (map[i][j]==) printf("-");else if (map[i][j]>=) printf("*");else if (map[i][j]<=-) printf("o");
printf("\n");
}
}
然后还有修改后的

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std; int n,m1,m2,r,x,y,t,xx,yy,ti,ll,rr,qaq,i,j;
bool f;
int map[][];
void ssp(){
if (f){
if (ti<m2-yy){
yy+=ti;
return;
}
if (ti<=m2-yy){
yy+=ti-;
return;
}
ti-=m2-yy;
yy=m2-;
f=;ssp();
}else{
if (ti<yy-m1){
yy-=ti;
return;
}
if (ti<=yy-m1){
yy-=ti-;
return;
}
ti-=yy-m1;
yy=m1+;
f=;ssp();
}
}
void sp(){
if (yy<m1&&(!f)) yy-=ti;else
if (yy>m2&&f) yy+=ti;else
if (yy>m2&&(!f)){
if (ti<yy-m2) yy-=ti;else
if (ti<=yy-m2) yy-=ti-;else
ti-=yy-m2,f=,yy=m2+,sp();
return;
}else
if (yy<m1&&f){
if (ti<m1-yy) yy+=ti;else
if (ti<=m1-yy) yy+=ti-;else
ti+=m1-yy,f=,yy=m1-,sp();
return;
}else{
ti%=(m2-m1-)*;
ssp();
}
return;
}
void op(){
ll=max(,x-t),rr=min(,x+t);
for (i=ll;i<=rr;i++){
ti=min(i-(x-t),(x+t)-i);xx=i,yy=y;
f=;sp();
if (yy>=&&yy<=) map[xx][yy]+=qaq;
if (i==x-t||i==x+t) continue;
ti=min(i-(x-t),(x+t)-i);xx=i;yy=y;
f=;sp();
if (yy>=&&yy<=) map[xx][yy]+=qaq;
}
}
int main(){
scanf("%d%d%d%d",&n,&m1,&m2,&r);
if (m1>m2) swap(m1,m2);
m1+=;m2+=;
while(n--){
scanf("%d%d%d",&y,&x,&t);
x+=;y+=;
t=r-t;
qaq=;op();
t-=;
if (t>=) qaq=-,op();
}
for (i=;i>=;i--){
for (j=;j<=;j++)
if (j==m1||j==m2) printf("X");else if (map[i][j]==) printf("-");else if (map[i][j]>=) printf("*");else if (map[i][j]<=-) printf("o");
printf("\n");
}
}
poj 2434;bzoj 1686 [Usaco2005 Open]Waves 波纹的更多相关文章
- 【模拟】bzoj1686: [Usaco2005 Open]Waves 波纹
打完模拟题来庆祝一波:):感觉最近陷入一种“口胡五分钟打题两小时”的巨坑之中…… Description Input 第1行:四个用空格隔开的整数Pj Bi,B2,R. P(1≤P≤5)表示石 ...
- bzoj:1687;poj 2434:[Usaco2005 Open]Navigating the City 城市交通
Description A dip in the milk market has forced the cows to move to the city. The only employment av ...
- HDU 3062 && HDU 1824 && POJ 3678 && BZOJ 1997 2-SAT
一条边<u,v>表示u选那么v一定被选. #include <iostream> #include <cstring> #include <cstdio> ...
- POJ 1061 BZOJ 1477 Luogu P1516 青蛙的约会 (扩展欧几里得算法)
手动博客搬家: 本文发表于20180226 23:35:26, 原地址https://blog.csdn.net/suncongbo/article/details/79382991 题目链接: (p ...
- Bzoj 1687: [Usaco2005 Open]Navigating the City 城市交通 广搜,深搜
1687: [Usaco2005 Open]Navigating the City 城市交通 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 122 So ...
- Bzoj 1674: [Usaco2005]Part Acquisition dijkstra,堆
1674: [Usaco2005]Part Acquisition Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 337 Solved: 162[Sub ...
- [BZOJ 1733] [Usaco2005 feb] Secret Milking Machine 【二分 + 最大流】
题目链接:BZOJ - 1733 题目分析 直接二分这个最大边的边权,然后用最大流判断是否可以有 T 的流量. 代码 #include <iostream> #include <cs ...
- BZOJ 1739: [Usaco2005 mar]Space Elevator 太空电梯
题目 1739: [Usaco2005 mar]Space Elevator 太空电梯 Time Limit: 5 Sec Memory Limit: 64 MB Description The c ...
- BZOJ 1672: [Usaco2005 Dec]Cleaning Shifts 清理牛棚
题目 1672: [Usaco2005 Dec]Cleaning Shifts 清理牛棚 Time Limit: 5 Sec Memory Limit: 64 MB Description Farm ...
随机推荐
- 云储存第三方--阿里云OSS VS 又拍云USS
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } p. ...
- 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解
引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单 ...
- listbox控件使用
1. 属性列表: SelectionMode 组件中条目的选择类型,即多选(Multiple).单选(Single) Rows 列表框中显示总共多少行 Sel ...
- Python 多线程进程高级指南(二)
本文是如何<优雅地实现Python通用多线程/进程并行模块>的后续.因为我发现,自认为懂了一点多线程开发的皮毛,写了那么个multi_helper的玩意儿,后来才发现我靠原来就是一坨屎.自 ...
- bzoj 3571: [Hnoi2014]画框
Description 小T准备在家里摆放几幅画,为此他买来了N幅画和N个画框.为了体现他的品味,小T希望能合理地搭配画与画框,使得其显得既不过于平庸也不太违和.对于第 幅画与第 个画框的配对,小T都 ...
- CentOS5 可用yum源
[base] name=CentOS-$releasever - Base #mirrorlist=http://mirrorlist.centos.org/?release=$releasever& ...
- js 变量、作用域和内存问题
基本类型和引用类型 5种基本类型:undefined.null.boolean.number.string 引用类型:由多个值构成的对象 属性 引用类型可以动态添加属性,而基本类型不可以 var p ...
- Windows 刷新DNS缓存
释放IP配置信息 ipconfig /release 刷新DNS ipconfig /flushdns 更新网卡适配器 ipconfig /renew
- windows下查看端口占用情况及关闭相应的进程
经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,如何知道谁占有了我们需要的端口,很多人都比较头疼,下面就介绍一种非常简单的方法. 例如:需要查看9001端口被谁占用,并将其进程强制关闭 在 ...
- MySQL 的调节和优化的提示
MySQL 服务器硬件和操作系统调节: 1. 拥有足够的物理内存来把整个InnoDB文件加载到内存中——在内存中访问文件时的速度要比在硬盘中访问时快的多.2. 不惜一切代价避免使用Swap交换分区 – ...