2017 Multi-University Training Contest - Team 1(hdu 6043 KazaQ's Socks)
2017-07-26 17:47
531 查看
KazaQ's Socks
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 642 Accepted Submission(s): 401
Problem Description
KazaQ wears socks everyday.
At the beginning, he has n pairs
of socks numbered from 1 to n in
his closets.
Every morning, he puts on a pair of socks which has the smallest number in the closets.
Every evening, he puts this pair of socks in the basket. If there are n-1 pairs
of socks in the basket now, lazy KazaQ has to wash them. These socks will be put in the closets again in tomorrow evening.
KazaQ would like to know which pair of socks he should wear on the k-th
day.
Input
The input consists of multiple test cases. (about 2000)
For each case, there is a line contains two numbers n,k (2≤n≤109,1≤k≤1018).
Output
For each test case, output "Case #x: y"
in one line (without quotes), where x indicates
the case number starting from 1 and y denotes
the answer of corresponding case.
Sample Input
3 7
3 6
4 9
Sample Output
Case #1: 3
Case #2: 1
Case #3: 2
题意就是KazaQ有n双袜子
a8c2
,每次穿编号最小的袜子,每双袜子穿一天,他每次穿到剩1双袜子时将穿过的n-1双洗了,问第k天KazaQ穿袜子的编号,这道题稍微找找规律就会发现他穿袜子的顺序是1,2,3,...,n,1,2,3,...n-2,n-1,1,2,3,...,n-2,n,1,2,3,...,n-2,n-1,1,2,....(n>2);
n=2是就是,1,2,1,2,1,2...
代码如下:
#include <bits/stdc++.h> using namespace std; int main() { long long n,k,t=0; while(cin>>n>>k) { t++; if(n==2) { cout<<"Case #"<<t<<": "<<(k+1)%2+1<<endl; continue; } if(k<=n) { cout<<"Case #"<<t<<": "<<k<<endl; } else { if(k%(n-1)==1) { if(k/(n-1)%2==1) { cout<<"Case #"<<t<<": "<<n<<endl; } else { cout<<"Case #"<<t<<": "<<n-1<<endl; } } else { if(k%(n-1)!=0) { cout<<"Case #"<<t<<": "<<k%(n-1)-1<<endl; } else { cout<<"Case #"<<t<<": "<<n-2<<endl; } } } } return 0; }
相关文章推荐
- HDU 6053 TrickGCD(分块+容斥)——2017 Multi-University Training Contest - Team 2
- 2017 Multi-University Training Contest - Team 2,HDU 6045 Is Derek lying?(思维水题)
- HDU-6058 Kanade's sum - 2017 Multi-University Training Contest - Team 3(思维+模拟链表)
- hdu 6058 Kanade's sum(链表)(2017 Multi-University Training Contest - Team 3 )
- hdu 6069 Counting Divisors(约数个数)(2017 Multi-University Training Contest - Team 4 )
- hdu 6070 Dirt Ratio(二分+线段树)(2017 Multi-University Training Contest - Team 4 )
- hdu 6071 Lazy Running(优先队列+dijkstra)(2017 Multi-University Training Contest - Team 4)
- hdu 6073 Matching In Multiplication(2017 Multi-University Training Contest - Team 4 )
- 2017 Multi-University Training Contest - Team 4 HDU 6070 Dirt Ratio (二分+ 线段树)
- 2017 Multi-University Training Contest - Team 1 1001&&HDU 6033 Add More Zero【签到题,数学,水】
- hdu 6034 Balala Power!(贪心)( 2017 Multi-University Training Contest - Team 1 )(无耻之sort)
- hdu 6047 Maximum Sequence(2017 Multi-University Training Contest - Team 2)
- hdu 6045 Is Derek lying?(2017 Multi-University Training Contest - Team 2)
- HDU - 6105 Gameia(必胜策略)(2017 Multi-University Training Contest - Team 6)
- hdu 6055 Regular polygon(判断正方形)(2017 Multi-University Training Contest - Team 2)
- HDU 6052 2017 Multi-University Training Contest - Team 2 1008 To My Boyfriend:计数问题
- HDU 6134 Battlestation Operational(基本数论+莫比乌斯反演)——2017 Multi-University Training Contest - Team 8
- 2017 Multi-University Training Contest - Team 9 1002&&HDU 6162 Ch’s gift【树链部分+线段树】
- hdu 6069 Counting Divisors(约数个数)(2017 Multi-University Training Contest - Team 4 )
- hdu 6070 Dirt Ratio(二分+线段树)(2017 Multi-University Training Contest - Team 4 )