签到题
#pragma GCC optimize(2)
#include <bits/stdc++.h>
using namespace std;
#define clr(a) memset(a,0,sizeof(a))
#define line cout<<"-----------------"<<endl;
typedef long long ll;
const int maxn = 1e5+10;
const int MAXN = 1e6+10;
const int INF = 0x3f3f3f3f;
const int MOD = 1e9+7;
const int N = 1010;
int n;
int main(){
int T;
cin >> T;
while(T--){
scanf("%d", &n);
int a = 0, b = 0;
int x;
for(int i = 0; i < n; i++){
scanf("%d", &x);
if(x == 1) a++;
else if(x == 2) b ++ ;
}
if(a > b) puts("Kobayashi");
else if(a == b) puts("Draw");
else puts("Tohru");
}
return 0;
}
模拟即可
#pragma GCC optimize(2)
#include <bits/stdc++.h>
using namespace std;
#define clr(a) memset(a,0,sizeof(a))
#define line cout<<"-----------------"<<endl;
typedef long long ll;
const int maxn = 1e5+10;
const int MAXN = 1e6+10;
const int INF = 0x3f3f3f3f;
const int MOD = 1e9+7;
const int N = 110;
int T, n;
int a[N];
int main(){
scanf("%d", &T);
while(T--){
clr(a);
bool flag = true;
scanf("%d", &n);
int num1 = 0;
int maxx = -1;
for(int i = 1; i <= n; i++) {
scanf("%d", &a[i]);
if(a[i] > maxx) maxx = a[i];
if(a[i] == 1) num1 ++;
if(a[i] <= 0) flag = false;
}
sort(a+1, a+n+1);
if(!flag || num1 < 2 || n > 13 || n < 10){
printf("No\n");
continue;
}
int cnt = 0;
for(int i = 1; i <= n; i++){
if(a[i] == maxx) {
cnt ++ ;
}
}
if(cnt != 1) flag = false;
else{
for(int i = 2; i <= n; i++){
if(abs(a[i] - a[i-1]) > 2 && a[i] != maxx && a[i-1] != maxx){
flag = false;
break;
}
}
}
if(!flag) printf("No\n");
else printf("Yes\n");
}
return 0;
}
C.What Kind of Friends Are You?
map + hash
#pragma GCC optimize(2)
#include <bits/stdc++.h>
using namespace std;
#define clr(a) memset(a, 0, sizeof(a))
#define line cout<<"-----------"<<endl
typedef long long ll;
const int maxn = 1e5 + 10;
const int MAXN = 1e6 + 10;
const int INF = 0x3f3f3f3f;
const int MOD = 1e9 + 7;
const int N = 1010;
int T, n, m, q, c;
string s;
map<string, int> mp;
map<int, string> pm;
int main(){
scanf("%d", &T);
while(T--){
mp.clear(); pm.clear();
scanf("%d%d%d", &n, &q, &c);
for(int i = 1; i <= c; i++){
cin >> s;
mp[s] = 0;
}
for(int i = 0; i < q; i++){
scanf("%d", &m);
for(int j = 0; j < m; j++){
cin >> s;
mp[s] += (1<<i);
}
}
map<string, int>::iterator it;
for(it = mp.begin(); it != mp.end(); it++){
if(pm.find(it->second) == pm.end())
pm[it->second] = it->first;
else
pm[it->second] = "Let's go to the library!!";
}
for(int i = 0; i < n; i++){
int sum = 0, x;
for(int j = 0; j < q; j++){
scanf("%d", &x);
sum += (1<<j) * x;
}
if(pm.find(sum) == pm.end())
printf("Let's go to the library!!\n");
else printf("%s\n", pm[sum].c_str());
}
}
return 0;
}
模拟即可
#include<bits/stdc++.h>
using namespace std;
#define clr(a) memset(a, 0, sizeof(a))
#define line cout<<"-----------"<<endl
typedef long long ll;
const ll INF = 0x3f3f3f3f;
const ll N = 110;
ll T, n, m, x, y, num, ans;
struct node{
ll l, r;
}a[N], b[N], f[N];
bool cmp(node a, node b){
if(a.l != b.l) return a.l < b.l;
else return a.r < b.r;
}
int main(){
scanf("%lld", &T);
while(T--){
clr(a); clr(b); clr(f);
ans = num = 0;
scanf("%lld%lld%lld%lld", &n, &m, &x, &y);
for(ll i = 0; i < x; i++)
scanf("%lld%lld", &a[i].l, &a[i].r);
sort(a, a + x, cmp);
for(ll i = 0; i < y; i++)
scanf("%lld%lld", &b[i].l, &b[i].r);
sort(b, b + y, cmp);
ll u = 0, v = 0;
ll maxx, minn;
while(x > u && y > v){
maxx = max(a[u].l, b[v].l);
minn = min(a[u].r, b[v].r);
if(minn - maxx - m + 2 > 0)
ans += (minn - maxx - m + 2);
if(a[u].r <= b[v].r) u++;
else v++;
}
printf("%lld\n", ans);
}
return 0;
}