2017北京网络赛 Bounce GCD加找规律
Posted Lsxxxxxxxxxxxxx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2017北京网络赛 Bounce GCD加找规律相关的知识,希望对你有一定的参考价值。
题目链接:http://hihocoder.com/problemset/problem/1584
题意:就是求一个小球从矩阵的左上角,跑到矩形的右下角不能重复经过的格子,小球碰到墙壁就反射。
解法:规律题。先算出来小球一共会经过多少网格(包括重复的在内),再算出来有多少个网格过不止一次,两者相减就可以了。对于n*m的矩形,经过观察可以得到,小球弹跳中经过的网格总数是(n-1)*(m-1)/gcd(n-1,m-1)+1,对于9*15的矩形来说就是57。然后来考虑答案39和57的差值,18。对于18有3*6的组合方式,那么对于3可以(9-1)/gcd(9-1,16-1)-1,对于6可以(15-1)/gcd(9-1,15-1)-1.难道是这样凑出来的???套上去发现恰好可以过样例。。然后就没有然后了。
#include <bits/stdc++.h> using namespace std; typedef long long LL; int main(){ LL n,m; while(~scanf("%lld%lld",&n,&m)){ LL ans = (n-1)/__gcd(n-1,m-1)*(m-1)-((n-1)/__gcd(n-1,m-1)-1)*((m-1)/__gcd(n-1,m-1)-1)+1; printf("%lld\n", ans); } return 0; }
对于(n?1)×(m?1)g
以上是关于2017北京网络赛 Bounce GCD加找规律的主要内容,如果未能解决你的问题,请参考以下文章
hihoCoder 1584 Bounce 数学规律 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛)
hihocoder 1584 Bounce (数学 && 规律) ACM-ICPC北京赛区2017网络赛
2017ICPC北京赛区网络赛 Minimum(数学+线段树)
2017年icpc西安网络赛 Maximum Flow (找规律+数位dp)