1. 程式人生 > 實用技巧 >【C#】介面test

【C#】介面test

A - Juggling Letters

給定n個字串,統計每個字母出現的次數,判斷能不能均勻分到每個字串,讓它們變成一樣的字串

#include <bits/stdc++.h>
#define p123 printf("123\n");
#define pn printf("\n");
#define pk printf(" ");
#define ll long long
#define re(n,a) memset(n,a,sizeof(n));
#define len(a) strlen(a)
#define eps 1e-6
using namespace std;
int
main() { int t,n,i,j; cin>>t; while(t--){ cin>>n; string s; int a[30]={0}; for(i=0;i<n;i++){ cin>>s; for(j=0;j<s.length();j++){ a[s[j]-'a']++; } } for(i=0;i<26;i++){
if(a[i]%n!=0){ cout<<"NO"<<endl; break; } } if(i==26){ cout<<"YES"<<endl; } } return 0; }

B - Power Sequence

有一個長度為n的序列,你每次可以對序列重新排序,然後花費1使某個元素加減1,多次操作後使得新序列是等比數列,求最小花費.

列舉,公比 。

#include<bits/stdc++.h>
using
namespace std; typedef long long ll; #define ture true const int N = 500010; int n; int a[N]; int main() { scanf("%d",&n); for(int i=1;i<=n;++i){ scanf("%d",&a[i]); } ll mi=1e18; sort(a+1,a+1+n); for(int i=1;i<=100000;++i){ ll cnt=0; ll tmp=1; for(int j=1;j<=n;++j){ cnt+=abs(tmp-a[j]); if(cnt>mi) break; tmp*=i; } if(cnt<mi) mi=cnt; } printf("%lld\n",mi); return 0; }

D - Drinks Choosing

給出n個學生,k個飲料,每個學生想要的飲料,記錄每種飲料的需求個數,算出要買多少份飲料才能滿足所有學生的需求sum

由於買飲料的分數不能超過n/2,如果sum<n/2所有人都可以被滿足,否則輸出n-(sum-n/2)

#include <bits/stdc++.h>
#define p123 printf("123\n");
#define pn printf("\n");
#define pk printf(" ");
#define ll long long
#define re(n,a) memset(n,a,sizeof(n));
#define len(a) strlen(a)
#define eps 1e-6
using namespace std;
int main()
{
    int n,k,a[1010]={0},i,b;
    cin>>n>>k;
    for(i=0;i<n;i++){
        cin>>b;
        a[b]++;
    }
    int sum=0,flag=0;
    for(i=1;i<=k;i++){
        if(a[i]%2!=0){
            sum+=a[i]/2+1;
            flag++;
        }else{
            sum+=a[i]/2;
        }
    }
    int x=n/2+n%2;
    if(sum>x){
        cout<<n-(sum-x)<<endl;
    }else{
        cout<<n<<endl;
    }
    return 0;
}

E - Sport Mafia

Alya可以選擇在箱子內放入i個糖果(i等於放入糖果的次數),或吃掉一個糖果

給出放入或吃掉糖果的次數 和 最終剩餘糖果的數量

求出一個吃了幾次糖果

當箱子裡的糖果小於等於最終剩餘的糖果數,就新增糖果,否則就吃糖果

當次數用完後跳出迴圈,輸出一共吃了幾個糖果

#include <bits/stdc++.h>
#define p123 printf("123\n");
#define pn printf("\n");
#define pk printf(" ");
#define ll long long
#define re(n,a) memset(n,a,sizeof(n));
#define len(a) strlen(a)
#define eps 1e-6
using namespace std;
int main()
{

    int n,k,dq=0,eat=0,a;
    int flag=0;
    cin>>n>>k;
    while(n>0){
        if(dq<=k){
            dq+=++flag;
            n--;
            //cout<<dq<<"**1"<<endl;
        }
        if(dq>k){
            eat+=dq-k;
            n-=dq-k;
            //cout<<dq<<"**2"<<endl;
            dq=k;
        }
    }
    cout<<eat<<endl;
    return 0;
}