最近写的零零散散的,感觉这两天遇到的题对于短时间提升意义已经不大了,还是做简单题保持手感吧哎
盖印章
#include <iostream>
using namespace std;
using LL=long long;
int main()
{ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);LL n,m,k;int cnt=0;cin>>n>>m>>k;for(int i=1;i<=n;i++){string s;cin>>s;for(int j=0;j<m;j++){if(s[j]=='1')cnt++;}}cout<<cnt-2*k<<' '<<3*k-cnt;return 0;
}
/*#include<bits/stdc++.h>
using namespace std;int main()
{int n,m,k;cin>>n>>m>>k;int cnt=0;//统计1的个数for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){char c;cin>>c;if(c=='1')cnt++;}cout<<cnt-2*k<<' '<<3*k-cnt;//输出A和B的使用次数return 0;
}#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define endl '\n'int main() {ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);int n, m, k; cin >> n >> m >> k;ll x = 0;for (int i = 1; i <= n; i++) {string s; cin >> s;x += count(s.begin(), s.end(), '1');}cout << x - 2 * k << " " << 3 * k - x << endl;return 0;
}*/
抽象,解题区法秒了()
字典树考试
#include <bits/stdc++.h>
using namespace std;
long long a[34]={0};
long long sum=0;int main()
{long long n;cin>>n;int c;for(long long i=1;i<=n;i++){ cin>>c;int k=0;int z=0;while(c){k=c%2;if(k==1)a[z]++;z++;c/=2;}}for(int i=0;i<=31;i++){if(a[i]>=2)sum+=(a[i]*(a[i]-1))/2;}cout<<sum<<endl;return 0;
}
不是很明白,有没有大佬看明白题的意思了,先在这里放一下吧