반응형
solved: 3 out of 6
C번까지 푸는데 30분이 안걸렸는데, D번 수학에서 막혔습니다.
A - Very Very Primitive Game
둘이 같은 수의 캔디를 들고 있는 상황을 고려하면 쉽게 해결 할 수 있습니다.
if (c==0) {
if (a>b) cout << "Takahashi" << endl;
else cout << "Aoki" << endl;
}
else {
if (a<b) cout << "Aoki" << endl;
else cout << "Takahashi" << endl;
}
B - Magic 3
주어진 스펠 중 한번이라도 데미지를 줄 수 있는지 확인해주면 쉽게 해결 할 수 있습니다.
if (a<s && b >d) f=true;
C - Bowls and Dishes
M가지의 조건이 주어질때, 각각의 조건에서 묻고있는 접시 위에 올려진 공이 1개 이상이면 True
$c_{i}$ 혹은 $c_{j}$위에 공을 한개 올리는 k가지의 상태가 주어지고, 이때 최대 몇가지의 조건을 만족 시킬 수 있는지 묻는 문제입니다.
k가 최대 16임으로 비트마스킹을 이용하여 전체 경우의 수에서 max값을 찾아주면 쉽게 해결 할 수 있습니다.
for (int i = 0; i<(1<<k); i++) {
int tmp = 0;
int dishs[n+1];
fill(dishs, dishs+n+1, 0);
for (int j = 0; j<k; j++) {
if (i&(1<<j))
dishs[person[j].X]++;
else
dishs[person[j].Y]++;
}
rep(i, m) {
if (dishs[conditions[i].X]>0 && dishs[conditions[i].Y]) tmp++;
}
ans = max(ans, tmp);
}
반응형
'CP_contest_Review' 카테고리의 다른 글
AtCoder ABC 191 (2) | 2021.02.07 |
---|---|
Codeforces R699 D2 (0) | 2021.02.06 |
codeforces R698 D2 (0) | 2021.01.29 |
Codeforces R697 D3 (0) | 2021.01.26 |
CF R696 D2 (0) | 2021.01.20 |