1282 时钟 
题目来源: Codility
基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题

有N个时钟,每个时钟有M个指针,P个刻度。时钟是圆形的,P个刻度均分整个圆。每个时钟每个指针指向整数刻度,并且每个时钟自身指针指向的数字都不同。你可以任意旋转时钟的表盘,但是你不能转指针。问最后有多少对时钟可以变成相同的状态。
例如:N = 5,M = 2,P = 4,5个时钟的数据如下{1, 2} {2, 4} {4, 3} {2, 3} {1, 3}
经过旋转后。 其中(1, 3), (1, 4), (2, 5) 和 (3, 4)是相同的。
给出所有时钟的数据,求有多少对时钟是相同的。

Input
第1行:3个数N, M, P中间用空格分隔,其中N为时钟的数量,M为表针的数量,P为刻度的数量(1 <= M, N <= 500, 1 <= P <= 10^9, M <= P)。
第2 - N + 1行:每行M个数,对应一个时钟,M个指针的位置。
Output
输出有多少对时钟是相同的。
Input示例
5 2 4
1 2
2 4
4 3
2 3
1 3
Output示例
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 时钟相关推荐

  1. 时钟 51Nod - 1282

    https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1282 每个钟表有m个状态 每个状态hash为一个三进制数 只用最小的一 ...

  2. Qt实现 指针式时钟+动态时钟 (详细注释)

    先上效果图: 点击运行后首先是一个指针式时钟窗口,点击Digital Clock->可以跳转到数字时钟窗口,再点击Move Clock->可以还原为指针式时钟窗口 关于整个程序的讲解都在代 ...

  3. 51nod 1617 奇偶数组

    传送门 回来看一眼51nod,发现自己掉到rank4了,赶紧切道题回rank3. 一眼不会做,这种东西应该慢慢找规律吧--然后看到数据范围其实比较小,应该是单次log的,那是不是可以分治啊. #inc ...

  4. 用JavaScript和CSS实现“在页面中水平和垂直居中”的时钟

    思路:实现起来最麻烦的事实上是水平居中和垂直居中,当中垂直居中是最麻烦的. 考虑到浏览器兼容性,网上看了一些资料,发如今页面中垂直居中确实没有什么太好的办法. 于是就採用了position:fixed ...

  5. STM32学习笔记9(SysTick滴答时钟)

    我不得不说意法半导体确实有点风骚!甚至有点变态.我对ST文档 STM32F10XXX参考手册的编辑水平真是不敢恭维.手册中好多说明都是含糊不清,甚至将好多对初学者来说很重要的地方都一笔带过,让人着实摸 ...

  6. 输入引脚时钟约束_Happy Design in Vivado 系列:时序分析入门三板斧(一):创建时钟...

    本系列中我们将一起探寻 Xilinx FPGA 的硬件开发环境 Vivado,发现 Vivado 的 Design Flow,使用 Tips...或许再来一些 BUG?Happy Design in ...

  7. 属于窄带噪声的是热噪声_时钟201系列: 非相位噪声的情况 (第一篇)

    欢迎来到Silicon Labs(亦称"芯科科技")的新系列博客文章"时钟201"的第一篇内容-非相位噪声的情况-第一部分.我们之前的系列博文"时钟1 ...

  8. STM32如何计算RTC时钟异步预分频和同步预分频

    实时时钟 (RTC) 是一个独立的 BCD 定时器/计数器,提供具有可编程闹钟中断功能的日历时钟/日历,可用于管理所有低功耗模式的自动唤醒单元.在配置RTC时钟时预分频器是关键指标,通过配置预分频器可 ...

  9. C语言调用easyX图形库画圆盘时钟

    #include<graphics.h> #include<stdio.h> #include<time.h> #include<math.h>#def ...

最新文章

  1. python socketpool:通用连接池
  2. 留言本的漏洞挖掘总结
  3. Redis 命令字符串(String)
  4. jQuery EasyUI API 中文文档 - 树表格(TreeGrid)
  5. UDP成为低延时流媒体关键 选SRT还是QUIC?
  6. SAP Cloud Application Programming CatalogService 默认的路径
  7. 预训练语言模型真的是世界模型?
  8. 承载物联之城 阿里云为无锡建设统一物联网基础平台
  9. 从零开始一起学习SLAM | 相机成像模型
  10. 实战:手把手教你开发React应用-郭永峰-专题视频课程
  11. 42表盘直径是从哪测量_手表尺寸怎么选择 手表尺寸怎么测量
  12. 【踩坑日记】python3.9安装paddlepaddle-tiny的时候报错ERROR: Could not find a version
  13. 2014十大的安全工具(ToolsWatch.org投票选出)
  14. 开放原子训练营(第一季)铜锁探密,SM3杂凑算法加强至pro版
  15. 分享一款多线程磁力搜索工具-聚磁帮
  16. 手机如何批量提取视频中的音频
  17. 视频号如何引流?怎样利用视频号引流?视频号引流的方法和技巧
  18. 自制COCO 实例分割dataset并测试效果(从采集到测试)
  19. [2020牛客多校第一场]Coda的题解集
  20. repo 工具使用手册

热门文章

  1. 孙正义看未来30年:这个趋势,永远不会错(附完整PPT)
  2. 【前沿技术】Facebook 硬件负责人,带摄像头的智能眼镜将在 10 年内成为常态
  3. Nature突破:首个比头发丝还细的机器人诞生了!可用针头注射入人体
  4. 我们离爱因斯坦想了解的“上帝的思想”,还有多远?
  5. 力拎30磅!波士顿动力物流机器人Handle亮相,还会摆货架
  6. RISV-V未来将面临怎样的挑战?
  7. 李开复对话李飞飞:AI要理解人类的情感,还早着呢
  8. 在这场人工智能“战争”中,这些国家都在做些什么?
  9. 毕业后想拿大厂 Offer?你得完整拥有这些计算机知识体系!
  10. P1494 小Z的袜子