昨天没打,今天写了一下,前三题都没有难度吧。
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<limits.h> #include<vector> typedef long long LL; using namespace std; char mp[110][110]; int n; int main() { while(cin>>n) { int ok=1; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) cin>>mp[i][j]; } for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { int cnt=0; if(mp[i+1][j]=='o') cnt++; if(mp[i-1][j]=='o') cnt++; if(mp[i][j-1]=='o') cnt++; if(mp[i][j+1]=='o') cnt++; if(cnt&1) { ok=0; break; } } } if(ok) cout<<"YES"<<endl; else cout<<"NO"<<endl; } return 0; }
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<limits.h> #include<vector> typedef long long LL; using namespace std; int hash[30]; int cmp(int a,int b) { return a>b; } int main() { int n,k; char c; while(cin>>n>>k) { memset(hash,0,sizeof(hash)); for(int i=0;i<n;i++) { cin>>c; hash[c-'A']++; } sort(hash,hash+26,cmp); LL sum=0; for(int i=0;i<26;i++) { if(k==0) break; if(k>=hash[i]) { sum+=(LL)hash[i]*hash[i]; k-=hash[i]; } else { sum+=(LL)k*k; k=0; } } cout<<sum<<endl; } return 0; }
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<limits.h> #include<vector> typedef long long LL; using namespace std; LL num[300000+100]; int main() { int n; while(~scanf("%d",&n)) { LL sum=0; for(int i=1;i<=n;i++) scanf("%d",&num[i]); sort(num+1,num+n+1); for(int i=1;i<=n;i++) sum+=num[i]*(i+1); cout<<sum-num[n]<<endl; } return 0; }