传送门:UVALive 7139

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

思路:因为起点和终点都是左上角,因此我们可以维护每一个格子左边部分的上下经过次数差,这也就是该格子的净转圈数,维护这个经过次数的时候可以用差分的思想(类似树状数组区间更新点查询),然后最后再求一个矩阵前缀和就是每个点真正的值了。

代码:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
typedef vector<int> vec;
int main()
{int T, n, m, k, d, kase = 1;char dir; cin >> T;while(T--){scanf("%d %d %d", &n, &m, &k);vector<vec> w(n + 10, vec(m + 10, 0));int r = 1, c = 1;while(k--){scanf(" %c %d", &dir, &d);if(dir == 'U'){w[r][c]++;w[r - d][c]--;r -= d;}if(dir == 'D'){w[r][c]++;w[r + d][c]--;r += d;}if(dir == 'L') c -= d;if(dir == 'R') c += d;}ll ans = 0;for(int i = 1; i <= n; i++)for(int j = 1; j <= m; j++){w[i][j] += w[i - 1][j] + w[i][j - 1] - w[i - 1][j - 1];ans += 1ll * w[i][j] * w[i][j];}/*for(int i = 1; i <= n; i++) //更通俗易懂的矩阵前缀和求法 for(int j = 1; j <= m; j++)w[i][j] += w[i][j - 1];for(int i = 1; i <= m; i++)for(int j = 1; j <= n; j++)w[j][i] += w[j - 1][i];for(int i = 1; i <= n; i++)for(int j = 1; j <= m; j++)ans += 1ll * w[i][j] * w[i][j];*/printf("Case #%d: %lld\n", kase++, ans);}return 0;
}

UVALive - 7139 Rotation 矩阵前缀和(imos和)相关推荐

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

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

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

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

  3. UVALive 7139 - Rotation

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

  4. UVALive 7139 Rotation

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

  5. UVALive 7139 Rotation(模拟)

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

  6. 蓝桥杯:试题 算法训练 采油区域 矩阵前缀和+动态规划+分治+枚举

    资源限制 时间限制:2.0s 内存限制:512.0MB 采油区域 Siruseri政府决定将石油资源丰富的Navalur省的土地拍卖给私人承包商以建立油井.被拍卖的整块土地为一个矩形区域,被划分为M× ...

  7. codevs 1373 射命丸文(矩阵前缀和)

    题目描述 Description 在幻想乡,射命丸文是以偷拍闻名的鸦天狗.当然,文文的照相机可不止能够照相,还能够消除取景框里面所有的弹幕.假设现在文文面前有一块N行M列的弹幕群,每一个单位面积内有分 ...

  8. [Daimayuan] 巨大的牛棚(C++,矩阵前缀和)

    题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 n * n的方格.输入数据中包括有树的方 ...

  9. UVaLive 7361(矩阵快速幂)

    题意:矩阵快速幂求斐波那契数列. 分析: #include<cstdio> #include<cstring> #include<cctype> #include& ...

最新文章

  1. XR应用场景骤变,一场波及5亿人的新探索开始了
  2. 【统计学习】统计学习方法概论
  3. 项目中用到的设计模式(持续更新)
  4. WinForm------TextEdit只能输入数字
  5. wsld2java axis_Weblogic+axis2安装
  6. 蓝桥杯 BASIC-29 基础练习 高精度加法
  7. mysql open files
  8. 文字转语音真人发声app哪个好用?几个好用的手机文字转语音软件
  9. 关闭qcom soc系列手机的ramdump mode
  10. SpringBoot 的请求参数校验注解
  11. C语言基础---3.格式化输出总结---%d ,%s,%f %.3f,%m.ns 以及sprintf函数
  12. 串级PID的一些理解
  13. java 图片 缩略图_java 图片缩略图的两种方法
  14. CF 1718 A2. Burenka and Traditions (hard version) 贪心 1900
  15. 【已解决】关于IDEA中 Driver 出现Exception in thread quot;mainquot; java.lang.NullPointerException问题
  16. ES6面试、复习干货知识点汇总
  17. android 微信 功能,安卓版微信悄悄更新,这项功能彻底消失!
  18. 芯片上电休眠或者JTAG禁用后怎么下载程序
  19. PHP基础——处理表单
  20. 阿里云 ECS 云计算训练营 Day6:在线编程挑战 2nd

热门文章

  1. 基于java的购物网站论文,基于JAVA购物网站的设计与实现(SSH,MySQL)
  2. 对上传的图片进行等比例压缩
  3. 还在为图像训练数据少发愁吗?那是因为你还不会这几招
  4. CCRC信息安全服务认证作用及部分注意事项
  5. 表情礼仪的表达方式(2)
  6. 【批处理DOS-CMD命令-汇总和小结】-将文件夹映射成虚拟磁盘——subst
  7. GRE写作提纲如何列
  8. Android N 多窗口布局 省电模式 全新通知功能
  9. JavaWeb购物车实现
  10. turtle_如何绘制菱形