A. Arena
分析: 只需要排序,找出第一个递增的数 i i i,答案就是 n − i n-i n−i
代码:
#include<bits/stdc++.h>
using namespace std;
const int N=105;
int t,n,a[N];
int main(){
cin>>t;
while(t--){
int res=0;
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
sort(a,a+n);
for(int i=1;i<n;i++){
if(a[i]>a[i-1]){
res=n-i;
break;
}
}
cout<<res<<endl;
}
}
B. Cat Cycle
分析: 如果 n n n是偶数,则没有矛盾点,如果 n n n是奇数,发现每次产生矛盾的地方是 n / 2 n/2 n/2, k − 1 n / 2 \frac{k-1}{n/2} n/2k−1表示之前产生了多少次矛盾,所以要加回来。
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
int t;
LL n,k;
int main(){
cin>>t;
while(t--){
cin>>n>>k;
LL x=k-1;
if(n%2==0){
cout<<1+x%n<<endl;
}
else{
x+=x/(n/2);
cout<<1+x%n<<endl;
}
}
}