关闭

ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛 G Bounce (规律)

928人阅读 评论(1) 收藏 举报
分类:

Bounce

时间限制:1000ms
单点时限:1000ms
内存限制:256MB

描述

For Argo, it is very interesting watching a circle bouncing in a rectangle.

As shown in the figure below, the rectangle is divided into N×M grids, and the circle fits exactly one grid.

The bouncing rule is simple:

1. The circle always starts from the left upper corner and moves towards lower right.

2. If the circle touches any edge of the rectangle, it will bounce.

3. If the circle reaches any corner of the rectangle after starting, it will stop there.


Argo wants to know how many grids the circle will go through only once until it first reaches another corner. Can you help him?

输入

The input consists of multiple test cases. (Up to 105)

For each test case:

One line contains two integers N and M, indicating the number of rows and columns of the rectangle. (2 ≤ N, M ≤ 109)

输出

For each test case, output one line containing one integer, the number of grids that the circle will go through exactly once until it stops (the starting grid and the ending grid also count).

样例输入
2 2
2 3
3 4
3 5
4 5
4 6
4 7
5 6
5 7
9 15
样例输出
2
3
5
5
7
8
7
9
11

39

比赛时一个小时没推出来的规律题 ,最后看到大佬给的代码以后发现我那样推根本不可能推出来,智商有限。话说这个规律也不是很了解,这种规律题都可以推出来,还是要膜一下。

代码实现:

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<cstdio>
#define ll long long
#define mset(a,x) memset(a,x,sizeof(a))

using namespace std;
const double PI=acos(-1);
const int inf=0x3f3f3f3f;
const double esp=1e-6;
const int maxn=1005;
const int mod=1e9+7;
int dir[4][2]={0,1,1,0,0,-1,-1,0};
ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}
ll lcm(ll a,ll b){return a/gcd(a,b)*b;}
ll inv(ll b){if(b==1)return 1; return (mod-mod/b)*inv(mod%b)%mod;}
ll fpow(ll n,ll k){ll r=1;for(;k;k>>=1){if(k&1)r=r*n%mod;n=n*n%mod;}return r;}

int main()
{
	ll n,m,a,b,temp,temp1,ans,c,d;
	while(cin>>n>>m)
	{
		if(n>m)
		swap(n,m);
		
		temp=gcd(n-1,m-1);
		temp1=(n-1)/temp+1;
		
		a=(temp1-2)/2;
		b=temp1-a-2;
		
		c=(m-1)/temp/2;
		d=(m-1-temp)/temp/2;
		
		ans=b*c+a*d;
		ans=(n-1)/temp*(m-1)+1-2*ans;
		
		cout<<ans<<endl;
	}
	return 0;
}


1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

ACM-ICPC国际大学生程序设计竞赛北京赛区(2015)网络赛 E题 hihoCoder 1231 Border Length

题意:给你一个多边形(可能为凹)和一个圆,求其公共部分的周长。思路:多边形和圆上会有很多交点,分别判断多边形和圆上相邻交点是否在另一个的内部,累加答案即可。这道题细节处理比较多,扒了各种模板拼凑起来了...
  • s_h_r
  • s_h_r
  • 2015-09-21 10:36
  • 1932

第39届ACM国际大学生程序设计竞赛 亚洲区域赛(现场赛)西安站

第39届ACM国际大学生程序设计竞赛 亚洲区域赛(现场赛)西安站
  • Tc_To_Top
  • Tc_To_Top
  • 2014-10-31 01:39
  • 3288

2016中国大学生程序设计竞赛 - 网络选拔赛题解报告

2016中国大学生程序设计竞赛 - 网络选拔赛题解报告
  • queuelovestack
  • queuelovestack
  • 2016-08-14 18:37
  • 3888

ACM-ICPC国际大学生程序设计竞赛北京赛区(2015)网络赛H题2015-9-20

[PKu H题] (http://hihocoder.com/contest/acmicpc2015beijingonline/problem/8) 题目描述: 题目8 : Fractal 时间...
  • PNAN222
  • PNAN222
  • 2015-09-20 16:26
  • 983

hihoCoder 1234 Fractal——ACM-ICPC国际大学生程序设计竞赛北京赛区(2015)网络赛

H Fractal——ACM-ICPC国际大学生程序设计竞赛北京赛区(2015)网络赛
  • queuelovestack
  • queuelovestack
  • 2015-09-20 19:42
  • 1463

ACM-ICPC国际大学生程序设计竞赛北京赛区(2015)网络赛A题2015-9-20

[PKU A题] (http://hihocoder.com/contest/acmicpc2015beijingonline/problem/1) 题目描述: 题目1 : The Cats’ F...
  • PNAN222
  • PNAN222
  • 2015-09-20 17:22
  • 578

ACM-ICPC国际大学生程序设计竞赛北京赛区(2016)网络赛 - C A Simple Job (模拟)(multiset)

map,set 这些STL的数据结构函数还是很强大的。 这道题只要把符合格式的词组提取出来,存进SET里面,最后count下重复最多的词组就好了,set已经安字典序帮你排好了。
  • hi_just_do_it
  • hi_just_do_it
  • 2016-09-25 10:44
  • 500

ACM-ICPC国际大学生程序设计竞赛北京赛区(2016)网络赛 A

字典树 + dfs 题解: 题意: 有nn本书, 每本书的格式为CATEGORY 1/CATEGORY 2/..../CATEGORY n/BOOKNAME, 现在要重新格式化这些书的格式...
  • AngOn823
  • AngOn823
  • 2016-09-25 00:15
  • 923

hihoCoder 1391 Countries 【预处理+排序+堆】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2016)网络赛)

原文链接:http://www.cnblogs.com/Coolxxx/p/5904454.html1391 : Countries时间限制:1000ms单点时限:1000ms内存限制:256MB描述...
  • Nishadiaoma
  • Nishadiaoma
  • 2016-09-25 19:42
  • 536

ACM-ICPC国际大学生程序设计竞赛北京赛区(2016)网络赛 C.A Simple Job map<string, map<string, int> > 、字符串单词词组的处理

map<string, map > 、字符串单词词组的处理 A,B C A ,B A B 等等情况处理好就好 当碰到,或者行末的时候, res.clear(), str.clear(); flag =...
  • ProLightsfxjh
  • ProLightsfxjh
  • 2016-09-24 22:28
  • 1031
    个人资料
    • 访问:52512次
    • 积分:1968
    • 等级:
    • 排名:千里之外
    • 原创:149篇
    • 转载:1篇
    • 译文:0篇
    • 评论:16条
    联系方式
    欢迎谈论交流:1245985209
    友情链接_winter2121
    http://blog.csdn.net/winter2121
    友情链接_anoxiacxy
    https://anoxiacxy.github.io/
    博客专栏