D1T1 铺设道路
分析
这题就是NOIP2013 积木大赛原题=。=,贪心地想,如果 a i > a i − 1 a_i > a_{i-1} ai>ai−1, a n s + = a i − a i − 1 ans+=a_i-a_{i-1} ans+=ai−ai−1,因为搞 a i − 1 a_{i-1} ai−1 的时候,能尽量搞 a i a_i ai 就搞 a i a_i ai。
代码如下
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int a[100001], max1, s;
int main(){
int i, j, n, m;
scanf("%d", &n);
for(i=1;i<=n;i++) scanf("%d", &a[i]);
for(i=1;i<=n;i++){
if(a[i]>a[i-1]) s += a[i]-a[i-1];
}
printf("%d",s);
return 0;
}
D1T2 货币系统
分析
由于 b b b 与 a a a 等价且 b b b 要尽量小, b b b 肯定是 a a a 的子集,其中对于 x ∈ a , x ∉ b x\in a,x \notin b x∈a,x∈