Timus 1139. City Blocks 题解
2014-04-27 16:50
260 查看
The blocks in the city of Fishburg are of square form. N avenues running south to north and Mstreets running east to west bound them. A helicopter took off in the most southwestern
crossroads and flew along the straight line to the most northeastern crossroads. How many blocks did it fly above?
Note. A block is a square of minimum area (without its borders).
The input contains N and M separated by one or more spaces. 1 < N, M < 32000.
The number of blocks the helicopter flew above.
The figures for samples:
Reference - The blog below explaine in detail, but I seem like not quite get it that much:
http://flickeringtubelight.net/blog/2006/08/a-diagonal-through-a-rectangular-grid-of-squares/
But anyway, it's a good explanation. And it should be benefit to read it, maybe you can come up with your own way to understand this approach.
This is a problem that can be approach by many ways. I want to post it because it is very mathematics-related.
I , too, use that formula to solve it.
My suggestion is: if you really have a hard time to deduct that formula, just check the small examples, like n = 2, m = 3, and n = 5, m = 4 and so on.
Below is my C++ solution:
crossroads and flew along the straight line to the most northeastern crossroads. How many blocks did it fly above?
Note. A block is a square of minimum area (without its borders).
Input
The input contains N and M separated by one or more spaces. 1 < N, M < 32000.
Output
The number of blocks the helicopter flew above.
Samples
input | output |
---|---|
4 3 | 4 |
3 3 | 2 |
Hint
The figures for samples:Reference - The blog below explaine in detail, but I seem like not quite get it that much:
http://flickeringtubelight.net/blog/2006/08/a-diagonal-through-a-rectangular-grid-of-squares/
But anyway, it's a good explanation. And it should be benefit to read it, maybe you can come up with your own way to understand this approach.
This is a problem that can be approach by many ways. I want to post it because it is very mathematics-related.
I , too, use that formula to solve it.
My suggestion is: if you really have a hard time to deduct that formula, just check the small examples, like n = 2, m = 3, and n = 5, m = 4 and so on.
Below is my C++ solution:
#include <iostream> using namespace std; int GCDcityBlocks(int n, int m) { while (m) { int a = n % m; n = m; m = a; } return n; } void CityBlocks1139() { int n = 0, m = 0; cin>>n>>m; n--, m--; int k = GCDcityBlocks(n, m); int ans = n/k + m/k - 1; cout<<ans * k; }
相关文章推荐
- Timus 1025. Democracy in Danger 题解
- Timus - 1639. Chocolate 2 二分法 题解
- Timus 2005. Taxi for Programmers 题解
- URAL 1139. City Blocks (数论)
- URAL 1139 City Blocks(数论)
- Timus 1837. Isenbaev's Number 图论 题解
- 1139. City Blocks
- 2015弱校连萌寒假专题一(热身) 题解(K-T)
- Codeforces Round #431 (Div. 2) 题解
- USACO section2.3 Zero Sum题解&代码
- Shanghai 2006,UVaLive(LA) 3695 Distant Galaxy题解
- 20150227题解
- [bzoj-2049][Sdoi2008]Cave 洞穴勘测 题解
- 蓝桥杯 历届试题 约数倍数选卡片 求大神指点 首先声明,我的代码有问题,!不喜勿进,若有意向,可以讨论,我百度不到这道题的题解
- LuoguP1286《两数之和》题解
- GDUT初赛题解
- Leetcode题解-5. Longest Palindromic Substring
- Sicily 1139. 电路稳定性
- ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛 题解汇总 Territorial Dispute
- leetcode 题解 || Next Permutation 问题