NOIP2018题解

啊赶上18年的题解了

附上2018年题目的PDF:Day1 Day2

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);
 9         ans+=y>x?0:x-y,y=x;
10     }
11     printf("%d",ans);
12     return 0;
13 } 
NOIP2018D1T1

D1T2:money

很多人没有想到背包的算法

同样是水题,直接上代码

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 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;
16         for (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 }
NOIP2018D1T2

D1T3:track

时间问题,先写到这里吧

猜你喜欢

转载自www.cnblogs.com/liyian/p/10009276.html