1. 程式人生 > >2018NOIP 提高組 Day1

2018NOIP 提高組 Day1

寫一波NOIP的題,感覺比我們那時候難多了......可剛剛崔力說我們那一屆才是出奇的難.....

說好的T1簽到呢...第一題就想了好久。最後發現貪心可做。對於每一個坑,如果小於前一個,填前一個的時候它已經平了;如果大於前一個,加上超出的數值

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;

int n,sum=0;
int a[100010];
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++) scanf("%d",&a[i]);
    sum=a[1];
    for(int i=2;i<=n;i++)
        if(a[i]>a[i-1]) sum+=a[i]-a[i-1];
    printf("%d\n",sum);
    return 0;
}

網上都在說T1原題,可我總覺得T2之間見到過

根據印象+不嚴謹的推斷,得出一個結論:A 集合內不能被其它陣列成的數必然存在於 B  集合內

然後問題就轉化為如何找出這些數的總數

這裡用到了完全揹包

還真巧呢這兩天正在搞DP。所謂完全揹包,是指對於給你一個體積固定的包和很多商品,每個商品有無數多個,求如何放才能使價值最大。