51nod 1282 时钟
第1行:3个数N, M, P中间用空格分隔,其中N为时钟的数量,M为表针的数量,P为刻度的数量(1 <= M, N <= 500, 1 <= P <= 10^9, M <= P)。 第2 - N + 1行:每行M个数,对应一个时钟,M个指针的位置。
输出有多少对时钟是相同的。
5 2 4 1 2 2 4 4 3 2 3 1 3
4 思路:一直以为只要每一个输入的指针位置之差的差值序列相同才是同一对时钟,一直疯狂WA;借鉴了大佬的博客:https://blog.csdn.net/luricheng/article/details/72993223 感谢大佬orz一下子明白只要差值字典序最小的序列相同也是同一对时钟,也就是旋转后相同;将输入的指针排好序,则指针的相对顺序不变,相邻指针差值也不变;比较每个差值序列的字典序最小序列是否相同来判断是不是同一个时钟
1 #include<iostream> 2 #include<algorithm> 3 #include<string> 4 #include<queue> 5 #include<map> 6 using namespace std; 7 int n, m, p, a[505][505]; 8 bool cmp(int x, int y) { return x < y; } 9 void solve() 10 { 11 map<deque<int>, int>imp; 12 for (int i = 0; i < n; i++) { 13 int t = a[i][0]; 14 for (int j = 0; j < m - 1; j++) 15 a[i][j] = (a[i][j + 1] - a[i][j]); 16 a[i][m - 1] = p + t - a[i][m - 1]; 17 deque<int> ans,tmp; 18 ans.assign(a[i], a[i] + m); 19 tmp.assign(a[i], a[i] + m); 20 for (int j = 0; j < m; j++) { 21 tmp.push_back(a[i][j]); 22 tmp.pop_front(); 23 ans = min(ans, tmp); 24 } 25 imp[ans]++; 26 } 27 int ans = 0; 28 for (auto c : imp) 29 ans += (c.second*(c.second - 1)) / 2; 30 cout << ans << endl; 31 } 32 int main() 33 { 34 ios::sync_with_stdio(false); 35 while (cin >> n >> m >> p) { 36 for (int i = 0; i < n; i++) { 37 for (int j = 0; j < m; j++) 38 cin >> a[i][j]; 39 sort(a[i], a[i] + m, cmp); 40 } 41 solve(); 42 } 43 return 0; 44 }
转载于:https://www.cnblogs.com/wangrunhu/p/9438378.html
51nod 1282 时钟相关推荐
- 时钟 51Nod - 1282
https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1282 每个钟表有m个状态 每个状态hash为一个三进制数 只用最小的一 ...
- Qt实现 指针式时钟+动态时钟 (详细注释)
先上效果图: 点击运行后首先是一个指针式时钟窗口,点击Digital Clock->可以跳转到数字时钟窗口,再点击Move Clock->可以还原为指针式时钟窗口 关于整个程序的讲解都在代 ...
- 51nod 1617 奇偶数组
传送门 回来看一眼51nod,发现自己掉到rank4了,赶紧切道题回rank3. 一眼不会做,这种东西应该慢慢找规律吧--然后看到数据范围其实比较小,应该是单次log的,那是不是可以分治啊. #inc ...
- 用JavaScript和CSS实现“在页面中水平和垂直居中”的时钟
思路:实现起来最麻烦的事实上是水平居中和垂直居中,当中垂直居中是最麻烦的. 考虑到浏览器兼容性,网上看了一些资料,发如今页面中垂直居中确实没有什么太好的办法. 于是就採用了position:fixed ...
- STM32学习笔记9(SysTick滴答时钟)
我不得不说意法半导体确实有点风骚!甚至有点变态.我对ST文档 STM32F10XXX参考手册的编辑水平真是不敢恭维.手册中好多说明都是含糊不清,甚至将好多对初学者来说很重要的地方都一笔带过,让人着实摸 ...
- 输入引脚时钟约束_Happy Design in Vivado 系列:时序分析入门三板斧(一):创建时钟...
本系列中我们将一起探寻 Xilinx FPGA 的硬件开发环境 Vivado,发现 Vivado 的 Design Flow,使用 Tips...或许再来一些 BUG?Happy Design in ...
- 属于窄带噪声的是热噪声_时钟201系列: 非相位噪声的情况 (第一篇)
欢迎来到Silicon Labs(亦称"芯科科技")的新系列博客文章"时钟201"的第一篇内容-非相位噪声的情况-第一部分.我们之前的系列博文"时钟1 ...
- STM32如何计算RTC时钟异步预分频和同步预分频
实时时钟 (RTC) 是一个独立的 BCD 定时器/计数器,提供具有可编程闹钟中断功能的日历时钟/日历,可用于管理所有低功耗模式的自动唤醒单元.在配置RTC时钟时预分频器是关键指标,通过配置预分频器可 ...
- C语言调用easyX图形库画圆盘时钟
#include<graphics.h> #include<stdio.h> #include<time.h> #include<math.h>#def ...
最新文章
- python socketpool:通用连接池
- 留言本的漏洞挖掘总结
- Redis 命令字符串(String)
- jQuery EasyUI API 中文文档 - 树表格(TreeGrid)
- UDP成为低延时流媒体关键 选SRT还是QUIC?
- SAP Cloud Application Programming CatalogService 默认的路径
- 预训练语言模型真的是世界模型?
- 承载物联之城 阿里云为无锡建设统一物联网基础平台
- 从零开始一起学习SLAM | 相机成像模型
- 实战:手把手教你开发React应用-郭永峰-专题视频课程
- 42表盘直径是从哪测量_手表尺寸怎么选择 手表尺寸怎么测量
- 【踩坑日记】python3.9安装paddlepaddle-tiny的时候报错ERROR: Could not find a version
- 2014十大的安全工具(ToolsWatch.org投票选出)
- 开放原子训练营(第一季)铜锁探密,SM3杂凑算法加强至pro版
- 分享一款多线程磁力搜索工具-聚磁帮
- 手机如何批量提取视频中的音频
- 视频号如何引流?怎样利用视频号引流?视频号引流的方法和技巧
- 自制COCO 实例分割dataset并测试效果(从采集到测试)
- [2020牛客多校第一场]Coda的题解集
- repo 工具使用手册
热门文章
- 孙正义看未来30年:这个趋势,永远不会错(附完整PPT)
- 【前沿技术】Facebook 硬件负责人,带摄像头的智能眼镜将在 10 年内成为常态
- Nature突破:首个比头发丝还细的机器人诞生了!可用针头注射入人体
- 我们离爱因斯坦想了解的“上帝的思想”,还有多远?
- 力拎30磅!波士顿动力物流机器人Handle亮相,还会摆货架
- RISV-V未来将面临怎样的挑战?
- 李开复对话李飞飞:AI要理解人类的情感,还早着呢
- 在这场人工智能“战争”中,这些国家都在做些什么?
- 毕业后想拿大厂 Offer?你得完整拥有这些计算机知识体系!
- P1494 小Z的袜子