Codeforces Round #326 (Div. 2)
A. Duff and Meat
水题就不多说了 一直记录最小值就可以了
\_\_author\_\_ = 'GCA'
# Date: 2015/10/18
n = int(input())
minp = 200
total = 0
for i in range(n):
ai, pi = list(map(int, input().split()))
if pi < minp:
minp = pi
total += minp \* ai
print(total)
B. Duff in Love 只要用快速 mod 的方式去找出每个质因数,而如果答案没办法整除这个质因数就把这个质因数乘起来
\_\_author\_\_ = 'GCA'
# Date: 2015/10/19
n = int(input())
a = n \*\* 0.5 + 1
d = 2
A = 1
while d <= a:
if n % d == 0:
n //= d
if A % d != 0:
A \*= d
else:
d += 1
if n > 1:
A \*= n
print(A)
```C. Duff and Weight Lifting 只要有两个以上的A数字 就可以mod 2变成只有1个or 0个 只剩1个的话代表无法合并 为一个step 而map(A+1)可以加上A / 2的数量 并且一直往大的数字推
__author__ = 'GCA'
// Created by GCA on 2015/10/19
#include using namespace std;
const int maxn = 1000105;
int a[maxn];
int n;
int main() {
memset(a, 0, sizeof(a));
scanf("%d", &n);
for (int i = 0; i < n; i++) {
int t;
scanf("%d", &t);
a[t]++;
}
int ans=0;
for (int i = 0; i < maxn; i++) {
ans += a[i]%2;
a[i+1]+=a[i]/2;
}
printf("%d\n",ans);
}