# hdu 6043 KazaQ’s Socks
题意:“劝退赛第一场”签到题 (\iwi/) 。
分析:找规律就可以看出除去前 n 天,后面就是(n-1)天一个循环,权值最大的两双交替,其他顺序排放就好。
代码如下:
#include <bitset>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <string>
#define INF 0x3f3f3f3f
using namespace std;
typedef long long ll;
ll a[1005],dp[1005];
int main(){
std::ios::sync_with_stdio(false);
std::cin.tie(0);
ll n,k,kase=1;
while(cin>>n>>k){
if(n>=k)printf("Case #%lld: %lld\n",kase++,k);
else{
if((k-n)%(n-1) == 0){
if((k-n)/(n-1)%2==1)
printf("Case #%lld: %lld\n",kase++,n-1);
else printf("Case #%lld: %lld\n",kase++,n);
}
else{
printf("Case #%lld: %lld\n",kase++,(k-n)%(n-1));
}
}
}
return 0;
}
这里写代码片