2016 UESTC Training for Math Problem D-熄灯啦!(乱搞)
2016-06-09 03:24
447 查看
D - 熄灯啦!
Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others)
冬天的时候,寝室阿姨会给全栋楼断电,但众所周知,卿学姐的寝室的电是从来不会断!
这是什么原理嘞?谭爷想来好好研究下,好让自己的寝室不再断电!
假设全栋楼的电闸有 n 个,一开始全部闭合,有强迫症的阿姨每次操作必定要翻转不同的 k 个电闸的状态( k <= n ),谭爷准备求最少的操作次数使全楼断电。
如果不能成功给全楼断电则输出-1
Input
输入2个数:n,k (1 <=n <= 10^9, 1 <= k <= 10^9)。
Output
输出翻转次数的最小值。 如果不能成功翻转则输出-1;
解题思路:
讨论n,k的奇偶性:(实在过于复杂)
http://blog.csdn.net/susidian/article/details/50855245详细证明;
代码:
Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others)
冬天的时候,寝室阿姨会给全栋楼断电,但众所周知,卿学姐的寝室的电是从来不会断!
这是什么原理嘞?谭爷想来好好研究下,好让自己的寝室不再断电!
假设全栋楼的电闸有 n 个,一开始全部闭合,有强迫症的阿姨每次操作必定要翻转不同的 k 个电闸的状态( k <= n ),谭爷准备求最少的操作次数使全楼断电。
如果不能成功给全楼断电则输出-1
Input
输入2个数:n,k (1 <=n <= 10^9, 1 <= k <= 10^9)。
Output
输出翻转次数的最小值。 如果不能成功翻转则输出-1;
解题思路:
讨论n,k的奇偶性:(实在过于复杂)
http://blog.csdn.net/susidian/article/details/50855245详细证明;
代码:
#include<bits/stdc++.h> bool odd(long long n) { if(n&1) return true; else return false; } int main() { long long n,k,ans; scanf("%lld%lld",&n,&k); if(n%k==0) ans=n/k; else if(odd(n)) { if(!odd(k)) ans=-1; else if(odd(n/k)) ans=n/k+2; else ans=n/k+1; } else { if(n/2<k&&k<n-1&&!odd(k)) ans=3; else if(n/2<k&&k<=n-1&&odd(k)) { if(n%(n-k)==0) { if(odd(n/(n-k))) ans=n/(n-k)+1; else ans=n/(n-k); } else { if(odd(n/(n-k))) ans=n/(n-k)+1; else ans=n/(n-k)+2; } } else if(k<=n/2&&!odd(k)) ans=n/k+1; else if(k<=n/2&&odd(k)) { if(odd(n/k)) ans=n/k+1; else ans=n/k+2; } } printf("%lld",ans); return 0; }
相关文章推荐
- 2015BJOI day1第二题 树的同构family
- #345 Div2 B. Beautiful Paintings
- CF621C - Wet Shark and Flowers
- CF624D - Array GCD
- [bzoj4570][scoi2016]妖怪 二分区间
- 【BZOJ3251】树上三角形
- 【HNOI2014】【BZOJ3573】米特运输
- 【BZOJ4414】数量积
- 【PA2014Final】【BZOJ3726】Wykladzina
- 【PA2013】【BZOJ3837】Filary
- 【Baltic2014】【BZOJ3917】Sequence
- 便利店选址
- Fuel Stops
- hdu 4472 Count (2012 ACM-ICPC 成都现场赛)
- hdu 4714 Tree2cycle
- HDU 4277 USACO ORZ
- HDU 4061 A Card Game
- HDU 4070 Phage War
- hdu 4696 Answers
- hdu 4782 Beautiful Soupz