hdu 4452 37届金华赛区 K题
题意:给一个n*n的格子,1在左上角,2在右下角,每个人有一个初始速度和方向,若遇到边缘,则朝相反方向前进,若两个人相遇则交换方向(注意方向改变后,人仍然需要移动),同时,每个人每过t1,t2时间就会朝左转向,求K秒时那个人所在的方向
模拟,看起来比较麻烦,实际写起来还是比较好写的
- #include<cstdio>
- #include<iostream>
- #include<algorithm>
- #include<cstring>
- #include<queue>
- #include<map>
- using namespace std;
- #define MOD 1000000007
- const double eps=1e-;
- #define cl(a) memset(a,0,sizeof(a))
- #define ts printf("*****\n");
- const int MAXN=;
- int n,m,tt,K,v1,v2;
- int dir1,dir2,t1,t2; //0北,1西,2南,3东
- int x1,y1;
- int x2,y2;
- void fun(int t)
- {
- if(x1==x2&&y1==y2) swap(dir1,dir2);
- else
- {
- if(t!=&&t%t1==) dir1+=,dir1%=;
- if(t!=&&t%t2==) dir2+=,dir2%=;
- }
- for(int i=;i<v1;i++)
- {
- if(dir1==&&x1==)dir1=;
- if(dir1==&&y1==)dir1=;
- if(dir1==&&x1==n)dir1=;
- if(dir1==&&y1==n)dir1=;
- if(dir1==)x1--;
- else if(dir1==)y1--;
- else if(dir1==)x1++;
- else y1++;
- }
- for(int i=;i<v2;i++)
- {
- if(dir2==&&x2==)dir2=;
- if(dir2==&&y2==)dir2=;
- if(dir2==&&x2==n)dir2=;
- if(dir2==&&y2==n)dir2=;
- if(dir2==)x2--;
- else if(dir2==)y2--;
- else if(dir2==)x2++;
- else y2++;
- }
- }
- int main()
- {
- int i,j,k;
- #ifndef ONLINE_JUDGE
- freopen("1.in","r",stdin);
- #endif
- while(scanf("%d",&n)!=EOF)
- {
- if(n==) break;
- char di[];
- x1=,y1=;
- x2=n,y2=n;
- scanf("%s%d%d",di,&v1,&t1);
- if(di[]=='N') dir1=;
- else if(di[]=='W') dir1=;
- else if(di[]=='S') dir1=;
- else dir1=;
- scanf("%s%d%d",di,&v2,&t2);
- if(di[]=='N') dir2=;
- else if(di[]=='W') dir2=;
- else if(di[]=='S') dir2=;
- else dir2=;
- scanf("%d",&K);
- for(i=;i<K;i++)
- {
- fun(i); //每秒钟的运动情况
- }
- printf("%d %d\n",x1,y1);
- printf("%d %d\n",x2,y2);
- }
- }
hdu 4452 37届金华赛区 K题的更多相关文章
- hdu 4445 37届金华赛区 D题
题意:给一个坦克的高度,求炮弹能打中最多的数量 枚举角度,作为一名学霸虽然很快推出了公式,但是却没有考虑到,角度可以朝下的情况 #include<cstdio> #include<i ...
- hdu 4451 37届金华赛区 J题
题意:给出衣服裤子鞋子的数目,有一些衣服和裤子,裤子和鞋子不能搭配,求最终的搭配方案总数 wa点很多,我写wa了很多次,代码能力需要进一步提升 #include<cstdio> #incl ...
- hdu 4442 37届金华赛区 A题
题意:给出一些队伍,每个队伍有初始等待时间和每秒增加的时间,求最短时间 假设有两个队初始时间和每秒增加时间为a1,b1和a2,b2 若第选择第一个的时间小于第二个,则 a1+a2+a1*b2<a ...
- hdu 4463 第37届ACM/ICPC杭州赛区K题 最小生成树
题意:给坐标系上的一些点,其中有两个点已经连了一条边,求最小生成树的值 将已连接的两点权值置为0,这样一定能加入最小生成树里 最后的结果加上这两点的距离即为所求 #include<cstdio& ...
- HDU-4451-Dressing (2012年金华赛区J题)
Dressing Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- HDU 6274 二分+预处理(CCPC K题
#include"bits/stdc++.h" #define db double #define ll long long #define vec vector<ll> ...
- HDU - 6521 Party (SYSU校赛K题)(线段树)
题目链接 题意:n个人排成一列,一开始他们互不认识,每次选[l,r]上的人开party,使他们互相认识,求出每次party之后新互相认识的人的对数. 思路:把“互相认识”变成单向连边,只考虑左边的人对 ...
- hdu 5122(2014ACM/ICPC亚洲区北京站) K题 K.Bro Sorting
传送门 对于错想成lis的解法,提供一组反例 1 3 4 2 5同时对于这次案例也可以观察出解法:对于每一个数,如果存在比它小的数在它后面,它势必需要移动,因为只能小的数无法向右移动,而且每一次移动都 ...
- 2019牛客暑期多校训练营(第四场)k题、j题
传送门 k题: 题意: 给你一串由数字构成的字符串,你从这个字符串中找子字符串使这个字符串是300的倍数 题解: 这道题和第三场的B题极其相似 首先可以把是三百的倍数分开,必须要是100和3的倍数 是 ...
随机推荐
- oracle按照in的顺序进行排序
oracle按照in的顺序进行排序 ,,) order by case id end;
- python---django使用数据库(orm)
官方教程点击此处 项目默认使用sqlite DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os. ...
- vue 获取后端数据打印结果undefined问题
今天做项目时后端有一个要展示到页面上的附件需要前端获取,我获取到了那个附件的信息,但打印fj.name或fj.url时控制台就会显示undefined,后来才发现是json数据没有解析对,应该使用JS ...
- Carmichael Numbers (Uva No.10006) -- 快速幂运算_埃氏筛法_打表
#include <cstdio> #include <iostream> #include <algorithm> #include <cmath> ...
- Spring: 读取 .properties 文件地址,json转java对象,el使用java类方法相关 (十三)
1. 在Java中获取 .properties 文件的路径 (src/main/resources 下) ProjectName |---src/main/java |---src/main/reso ...
- <td>内容超出自动换行
td 内容自动换行 table表格td设置宽度后文字太多自动换行 设置table 的 style="table-layout:fixed;" 然后设置td的 style=" ...
- Maven从私服上下载所需jar包——(十四)
1.修改settings.xml 将下面代码添加到settings.xml中 <profile> <!--profile的id--> <id>dev</id& ...
- VAE(Variational Autoencoder)的原理
Kingma, Diederik P., and Max Welling. "Auto-encoding variational bayes." arXiv preprint ar ...
- eclipse安装阿里巴巴java开发规范插件
阿里巴巴java开发规范插件 作为JAVA开发人员,始终没有一个明确的规范,何为好代码,何为坏代码,造成不同人的代码风格不同,接手别人代码后改造起来相当困难.前不久,阿里巴巴发布了<阿里巴巴Ja ...
- 浅谈js设计模式之发布 — 订阅模式
发布 — 订阅模式又叫观察者模式,它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知.在 JavaScript开发中,我们一般用事件模型来替代传统的发布 — ...