NOIP2018題解
阿新 • • 發佈:2018-11-23
啊趕上18年的題解了
D1T1:road
居然出原題! 我 抄 我 自 己
直接上程式碼,沒什麼好說的
1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 int n,x,y,ans; 5 int main(){ 6 scanf("%d",&n); 7 for (int i=1;i<=n;i++){ 8 scanf("%d",&x);NOIP2018D1T19 ans+=y>x?0:x-y,y=x; 10 } 11 printf("%d",ans); 12 return 0; 13 }
D1T2:money
很多人沒有想到揹包的演算法
同樣是水題,直接上程式碼
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std;NOIP2018D1T26 int a[25001],n,t; 7 bool v[25001]; 8 int main(){ 9 scanf("%d",&t); 10 while (t--){ 11 memset(v,0,sizeof(v));v[0]=true; 12 scanf("%d",&n); 13 for (int i=1;i<=n;i++) scanf("%d",&a[i]); 14 sort(a+1,a+n+1); 15 int maxn=a[n],num=0; 16for (int i=1;i<=n;i++) 17 if (v[a[i]]) num++; 18 else 19 for (int j=a[i];j<=maxn;j++) 20 if (v[j-a[i]]) v[j]=true; 21 printf("%d\n",n-num); 22 } 23 return 0; 24 }
D1T3:track
時間問題,先寫到這裡吧