Educational Codeforces Round 104 (Rated for Div. 2) 补题A B

A. Arena

在这里插入图片描述

分析: 只需要排序,找出第一个递增的数 i i i,答案就是 n − i n-i ni

代码:

#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/2k1表示之前产生了多少次矛盾,所以要加回来。

代码:

#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;
        }
    }
}

猜你喜欢

转载自blog.csdn.net/messywind/article/details/113833750