P1969 积木大赛

Posted xiaoyezi-wink

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P1969 积木大赛相关的知识,希望对你有一定的参考价值。

P1969 积木大赛

技术图片

题解

solution 1

我们举个例子

技术图片

技术图片

 

然后我们画个折线图:

技术图片

 

 然后我们大胆猜想,把上边的凸点加起来,减去凹点之和,得到结果

技术图片

代码

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstdlib>
 4 #include<algorithm>
 5 #include<string>
 6 #include<cstring>
 7 #include<queue>
 8 #include<cmath>
 9 using namespace std;
10 typedef long long ll;
11 
12 inline int read()
13 {
14     int ans=0;
15     char last= ,ch=getchar();
16     while(ch<0||ch>9) last=ch,ch=getchar();
17     while(ch>=0&&ch<=9) ans=ans*10+ch-0,ch=getchar();
18     if(last==-) ans=-ans;
19     return ans;
20 }
21 
22 const int maxn=1e5+10;
23 int n,minh=1e5,ans=0;
24 int h[maxn],tot=0;
25 queue<int>q;
26 
27 int main()
28 {
29     n=read();
30     h[0]=h[n-1]=0;
31     for(int i=1;i<=n;i++){
32         h[++tot]=read();
33         if(h[tot]==h[tot-1]) tot--;
34     } 
35     for(int i=1;i<=n;i++){
36         if(h[i-1]<h[i]&&h[i]>h[i+1]) ans+=h[i];
37         if(h[i-1]>h[i]&&h[i]<h[i+1]) ans-=h[i];
38     }     
39     printf("%d
",ans);
40     return 0;
41 }

 

Solution 2

我们一个个输入,如果发现前一个数字比后一个小,那么就说明要再多来一步操作,所以加上它与前一个数的差

代码

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstdlib>
 4 #include<algorithm>
 5 #include<string>
 6 #include<cstring>
 7 #include<queue>
 8 #include<cmath>
 9 using namespace std;
10 typedef long long ll;
11 
12 inline int read()
13 {
14     int ans=0;
15     char last= ,ch=getchar();
16     while(ch<0||ch>9) last=ch,ch=getchar();
17     while(ch>=0&&ch<=9) ans=ans*10+ch-0,ch=getchar();
18     if(last==-) ans=-ans;
19     return ans;
20 }
21 
22 const int maxn=1e5+10;
23 int n,ans=0;
24 int h[maxn];
25 
26 int main()
27 {
28     n=read();
29     for(int i=1;i<=n;i++){
30         h[i]=read();
31         if(h[i-1]<h[i]) ans+=(h[i]-h[i-1]);
32     }     
33     printf("%d
",ans);
34     return 0;
35 }

 

 

双倍经验

P5019 铺设道路

 

以上是关于P1969 积木大赛的主要内容,如果未能解决你的问题,请参考以下文章

洛谷—— P1969 积木大赛

洛谷 P1969 积木大赛 题解

洛谷 P1969 积木大赛

AC日记——积木大赛 洛谷 P1969

noip 2013 luogu P1969 积木大赛

p1969积木大赛