#878

发布时间 2023-07-30 01:52:55作者: o-Sakurajimamai-o
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e6+10,mod=1e9+7;
string s;
int n,t,a[N],f[N],res,num,ans,m;
bool vis[N];
signed main()
{
    std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    cin>>t;
    while(t--){
        cin>>n;
        char op;
        bool f=false;
        for(int i=0;i<n;i++){
            char x;
            cin>>x;
            if(f) cout<<x,f=false,op=x;
            else if(i==0) cout<<x,op=x;
            else if(x==op) f=true;
        }
        cout<<endl;
    }
    return 0;
}

 

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e6+10,mod=1e9+7;
string s;
int n,t,a[N],f[N],res,num,ans,m;
bool vis[N];
signed main()
{
    std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    cin>>t;
    while(t--){
        cin>>n>>m;
        if(m>=30||pow(2,m)>n) cout<<n+1<<endl;
        else if(n>=pow(2,m)) cout<<(int)pow(2,m)<<endl;
    }
    return 0;
}

 

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=2e5+10,mod=1e9+7;
string s;
int n,t,a[N],f[N],res,num,ans,m,k,q;
bool vis[N];
signed main()
{
    std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    cin>>t;
    f[1]=1;
    for(int i=2;i<=N;i++) f[i]=i+f[i-1];
    while(t--){
        cin>>n>>k>>q; res=0,num=0;
        for(int i=0;i<n;i++){
            cin>>m;
            if(m<=q) num++;
            else{
                if(num>=k) res+=f[num-k+1];
                num=0;
            }
        }
        if(num>=k) res+=f[num-k+1];
        cout<<res<<endl;
    }
    return 0;
}

 

//在某一段区间内,一旦最大值减去最小值的差小于等于 x 的二倍,则一定能找到一个值 y
//使最大值最小值分别与 y 相减后的绝对值都不大于x 
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e6+10,mod=1e9+7;
string s;
int n,t,a[N],f[N],res,num,ans,m;
bool vis[N];
bool check(int u)
{
    int i,j,k;
    for(i=1;i<n;i++) if(a[i]-a[0]>u<<1) break;
    if(i>=n) return true;
    for(j=i+1;j<n;j++) if(a[j]-a[i]>u<<1) break;
    if(j>=n) return true;
    for(k=j+1;k<n;k++) if(a[k]-a[j]>u<<1) break;
    if(k>=n) return true;
    return false;
}
signed main()
{
    std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    cin>>t;
    while(t--){
        cin>>n;
        for(int i=0;i<n;i++) cin>>a[i];
        if(n<3){
            cout<<0<<endl;
            continue;
        }
        sort(a,a+n);
        int l=0,r=a[n-1];
        while(l<r){
            int mid=l+r>>1;
            if(check(mid)) r=mid;
            else l=mid+1;
        }
        cout<<r<<endl;
    }
    return 0;
}