题目链接

参考

题意

N*M的网格,一辆车沿着网格线按给定路线走,每个网格里有一个人,人的视线始终看着车,问这些人净转圈数的平方和。

分析

由于车的起点和终点都为左上角,且每个格子里的人永远面对着车,经过多次模拟可发现:每个人的圈数与其所在格子左边向下次数与向上次数的差。于是只需要维护这个次数,对每次行车路线上的右边的格做处理,可以用前缀和的思想来维护,而且因为网格具体规格不确定,可以用vector。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <vector>
#include <ctype.h>
#include <queue>
using namespace std;
const int maxn=1e6+10;
const int inf=0x3f3f3f3f;
const int mod=1e9+7;
typedef long long ll;
vector< vector<int> >v;
int main(){
#ifdef LOCALfreopen("in.txt","r",stdin);
#endifint t, m, n, k;int kase=0;scanf("%d",&t);while(t--){scanf("%d%d%d",&n,&m,&k);int dx=1,dy=1;int d;char dir[3];v=vector< vector<int> >(n+10,vector<int>(m+10,0));while(k--){scanf("%s%d",dir,&d);if(dir[0]=='L'){dy-=d;}else if(dir[0]=='R'){dy+=d;}else if(dir[0]=='D'){v[dx][dy]++;v[dx+d][dy]--;dx+=d;}else if(dir[0]=='U'){v[dx][dy]++;v[dx-d][dy]-=1;dx-=d;}}//        for(int i=1;i<=n+1;i++){
//            for(int j=1;j<=m+1;j++)
//                printf("%d",v[i][j]);
//            puts("");
//        }ll ans=0;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){v[i][j]+=v[i-1][j]+v[i][j-1]-v[i-1][j-1];ans+=(ll)v[i][j]*v[i][j];}}printf("Case #%d: %lld\n",++kase,ans);}return 0;
}

转载于:https://www.cnblogs.com/fht-litost/p/7345448.html

UVALive - 7139(差分+模拟)相关推荐

  1. UVALive - 7139 Rotation 矩阵前缀和(imos和)

    传送门:UVALive 7139 题意:N*M的网格,一辆车沿着网格线按给定路线走,每个网格里有一个人,人的视线始终看着车,问这些人净转圈数的平方和. 思路:因为起点和终点都是左上角,因此我们可以维护 ...

  2. UVALive 7139 Rotation(模拟)

    思路:模拟题,留意到其实左右操作是会抵消的,所以只用考虑上下就好了 #include<iostream> #include<cstdio> #include<vector ...

  3. c语言差分一阶波动方程,用有限差分模拟一维波动方程.doc

    摘 要 波动是物质运动的重要表现形式.由于物质特征.结构的不同,波在其内部传播具有不同的特征,包含的信息也不尽相同.波在连续介质中的传播问题一直受到极大的重视,波传问题的研究也具有十分重要的工程应用意 ...

  4. UVALive 7139 Rotation

     这个题就是模拟题,但是性质很深. 观察可得到一个结论:对于一个方格中的人来说,如果要有一个完整的时针旋转,则必然是一边走下去,一边走上去,且"包含"所以不用考虑R,L. 若车 ...

  5. UVALive 7139 Rotation(矩阵前缀和)(2014 Asia Shanghai Regional Contest)

    题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=6 ...

  6. UVALive - 6440(模拟)

    题目链接:https://vjudge.net/contest/241341#problem/G 题目大意:输入一个N,n次操作.对于第一种操作增加一个病人,告诉病人的t0,st0,r.第二种操作,在 ...

  7. UVALive 7139 - Rotation

    传送门 题意:由n*m个格子组成的网格地图,一辆车沿着边移动,车从起点出发,最终又回到起点 每个格子中间都站着一个人,一直面向着车,若(x,y)格子的人在车子行驶过程中,顺时针转了a度,逆时针b度,则 ...

  8. UVALive 7139 Rotation 二维vector+矩阵前缀和 【模版】

    题目大意:给一个n*m的矩阵,每个方块上有一个人.现在有一辆车在左上角的格点处,矩阵里的人都会一直面向那辆车.现在给出车的移动路线,问每个人总旋转角度的平方和是多少.若一个人顺时针旋转10个圈,逆时针 ...

  9. 省选模拟赛记录(越往下越新哦~~~)

    LOG 模拟赛 第一次见尼玛这么给数据范围的-- 开考有点困,迷迷糊糊看完了三道题,真的是像老吕说的那样,一道都不会-- 思考T1,感觉有点感觉,但是太困了,就先码了暴力,发现打表可以50分,于是就大 ...

最新文章

  1. Java 洛谷 P1200 [USACO1.1]你的飞碟在这儿 Your Ride Is Here
  2. MySQL(二)——DQL数据查询语言
  3. check box 如何调整字体大小_CSS中关于box-sizing你可能需要知道的小知识
  4. 【51nod - 1108】距离之和最小 V2(曼哈顿距离,中位数性质)
  5. delphi if多个条件_判断(if)语句
  6. 我的城市,我的汽车:Autoblog 摄影大赛
  7. ubuntu 12安装oracle,Ubuntu12.04(32位)安装Oracle 11g(32位)全过程
  8. c++ 23种设计模式_使用Go实现GoF的23种设计模式(三)
  9. ubuntu15.04源失效问题修复
  10. 山东大学软件学院操作系统实验的准备
  11. 简单动态字符串(SDS)
  12. 计算机基础知识论文统一格式,大一计算机基础知识论文.docx
  13. 系统学习dede标签
  14. 新手操作低客单价时常见的误区有哪些?
  15. 尼康相机测试软件mac版,尼康Webcam Utility
  16. 流利说被强制退市:因市值过低 不符合上市要求
  17. mac电脑如何打包dmg安装包文件
  18. 获取视频文件格式信息的工具和方法
  19. linux将tick变成日期,Linux时间子系统之:Tick Device layer综述
  20. qcc304x笔记之音频链路(chain)机制(十八)

热门文章

  1. R语言参数估计笔记及例题
  2. dmp文件的压缩比例
  3. cocos黑暗斩_cocos2d制作动态光晕效果基础——blendFunc
  4. text-rendering文本渲染
  5. 三招教你如何把文字转换成语音
  6. 大数据开发要学Java框架吗?
  7. 视频会议系统有哪些部分组成?
  8. play框架 库下载到哪里_如何刷新您的Google Play音乐库并查找丢失的曲目
  9. 201871010128-杨丽霞《面向对象程序设计(java)》第四周学习总结
  10. Oracle帐号转载