要点

  • 外层暴力枚举转的“角度”,会发现肯定是n的约数
  • 对于m条线段想判定当前的“角度”是否ok,每个线段只要管它自己的下一个即可,不必画个圈遍历一遍
  • 之后将本来的线段集合和当前需要的线段集合比较,如果相同则该图形旋转对称
  • 一个小优化是只需要枚举n的质约数,质约数d含义为把圆划分成d份。这样划分成6份根本不必要枚举,如果6份行的话,2份的时候就跑出去了;如果6份不行的话……所以就不用枚举它呀~
const int maxn = 1e5 + 5;
int n, m;
vector<pii> p;
vector<int> d; void pre(int n) {
for (int i = 2; i <= n; i++) {
if (n % i) continue;
d.emplace_back(i);
while (n % i == 0) n /= i;
}
} int main() {
read(n), read(m);
pre(n);
for (int i = 1, a, b; i <= m; i++) {
read(a), read(b);
a--, b--;
if (a > b) swap(a, b);
p.emplace_back(a, b);
}
sort(All(p)); for (int x : d) {
int k = n / x;
vector<pii> t;
rep(i, 0, m - 1) {
int a = p[i].first, b = p[i].second;
a = (a + k) % n, b = (b + k) % n;
if (a > b) swap(a, b);
t.emplace_back(a, b);
}
sort(All(t));
if (p == t) {
puts("Yes"); return 0;
}
}
puts("No"); return 0;
}

Codeforces 1161B(判断旋转对称)的更多相关文章

  1. cocos2d 判断旋转矩形是否包含某个点

    本来想画个图演示一下,但是折腾了一会发现画不好,我的win10系统没有安装office,以后再看的话再补上吧.不废话了. 如图所以,如果判断点P是否被矩形A所包含,非常容易.那么如果矩形A以中心点逆时 ...

  2. CodeForces - 416A (判断大于小于等于 模拟题)

    Guess a number! Time Limit: 1000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u Sub ...

  3. CodeForces - 76F:Tourist (旋转坐标系,LIS)

    pro:有一个驴友,以及给定N个表演地点xi和时间ti,驴友的速度不能超过V. 问他在起点为原点和不设置起点的情况下分别最多参观多少个表演. sol:BZOJ接飞饼见过:clari也在camp的DP专 ...

  4. AJPFX实列判断一个字符串是不是对称字符串

    import java.util.Scanner; /** *        判断一个字符串是否是对称字符串 */ public class StringDemo { public static vo ...

  5. [LeetCode] Strobogrammatic Number III 对称数之三

    A strobogrammatic number is a number that looks the same when rotated 180 degrees (looked at upside ...

  6. 在ios8中做的屏幕旋转功能

    http://www.cnblogs.com/smileEvday/archive/2013/04/24/Rotate2.html 思路出自这篇博主的文章. 直接上代码 -(void)willAnim ...

  7. 每日微软面试题——day 6(打印所有对称子串)

    每日微软面试题——day 6(打印所有对称子串) 分类: 2.数据结构与算法2011-08-14 14:27 9595人阅读 评论(15) 收藏 举报 面试微软string测试systemdistan ...

  8. C语言判断字符串是否旋转过

    //方法一 //每次左旋一次,判断旋转之后字符串是否与目标字符串是否一致 //旋转一圈 没有找到返回0 #define _CRT_SECURE_NO_WARNINGS #include<stdi ...

  9. 246. Strobogrammatic Number 上下对称的数字

    [抄题]: A strobogrammatic number is a number that looks the same when rotated 180 degrees (looked at u ...

随机推荐

  1. 点分治Day1

    树套树Day2暂且搁置...因为Day1的题我各种不会做... 唯一过了一道还是整体二分过的... 我们来一点愉快的算法,先不考虑数据结构这种骚东西了 毕竟还在发烧,就先码码这几天在搞的点分治吧 hx ...

  2. bzoj 2823: [AHOI2012]信号塔 最小圆覆盖

    题目大意: 给定n个点,求面积最小的园覆盖所有点.其中\(n \leq 10^6\) 题解: 恩... 刚拿到这道题的时候... 什么???最小圆覆盖不是\(O(n^3)\)的随机增量算法吗????? ...

  3. bzoj 3158 千钧一发 —— 最小割

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3158 \( a[i] \) 是奇数则满足条件1,是偶数则显然满足条件2: 因为如果把两个奇数 ...

  4. bzoj 1257 余数之和 —— 数论分块

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1257 \( \sum\limits_{i=1}^{n}k\%i = \sum\limits_ ...

  5. POJ1001(C++处理大数)

    Exponentiation Time Limit: 500MS   Memory Limit: 10000K Total Submissions: 158025   Accepted: 38470 ...

  6. Boost库之asio io_service以及run、run_one、poll、poll_one区别

    一.io_service的作用 io_servie 实现了一个任务队列,这里的任务就是void(void)的函数.Io_servie最常用的两个接口是post和run,post向任务队列中投递任务,r ...

  7. 人物-IT-张朝阳:张朝阳

    ylbtech-人物-IT-张朝阳:张朝阳 张朝阳,1964年10月31日出生在陕西省西安市,搜狐公司董事局主席兼首席执行官.1986年毕业于清华大学物理系,并于同年考取李政道奖学金赴美留学.1993 ...

  8. hibernate HQL查询

    hql(都要在事务中完成)session.beginTransaction();session.getTransaction().commit(); session.beginTransaction( ...

  9. docker Get started part 4: Accessing your cluster cannot curl

    1. 问题描述 docker Get started part 4 can't visit myvm1 or myvm2. curl: (7) Failed to connect to 192.168 ...

  10. eclipse安装WTP部署WEB项目

    打开WTP官方安装指南,找到想要的下载站点 http://wiki.eclipse.org/WTP_FAQ#How_do_I_install_WTP.3F 我选择的是http://download.e ...