【C#】介面test
阿新 • • 發佈:2020-10-25
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; intmain() { 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> usingnamespace 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; }