HELPME! 54%AC

P1567 统计天数

你这个代码i是在枚举最长天数的左端点,j枚举右端点,其实没必要。 理由: 考虑一个连续天数: XXXXXXX 发现当i=1,j=7时最长。 这之后,当左端点成为i=2时,j=7最长,但总长度比答案少了1,左端点i=3是。总长度比答案少了2...... 也就是说,在已知了一段连续天数时,左端点在这段连续天数之中对答案没有任何贡献,如: XXX00XXXX 当i=2,3时远没有i=1时答案大,当i=7,8,9,10时远没有i=6时大,就是说,没有必要搜已知连续天数。 ```cpp #include<bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; int l[n+2]; for(int i=1;i<=n;i++) cin>>l[i]; int ans=1,maxx=-1; for(int i=2;i<=n;i++){ if(l[i]>l[i-1])ans++; else ans=1; maxx=max(maxx,ans); } cout<<maxx; return 0; }
by Chengjintian @ 2023-11-25 15:46:52


@[Chengjintian](/user/926432) ```cpp #include<iostream> #include<cstdio> #include<string> using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int d,len=1,ta=0,ans=0; cin>>d; int t[d+2]; for(int i=1;i<=d;i++) cin>>t[i]; for(int i=1;i<d+2;i++){ if(t[i]>t[i-1]){ len++; } if(t[i]<=t[i-1]){ ta=len; if(ta>ans) ans=ta; len=1; } } cout<<ans; return 0; } ``` 谢谢你!(求互关)
by JeremyXie @ 2023-11-25 16:06:46


@[JeremyXie](/user/1127401) 加油
by Chengjintian @ 2023-11-25 16:08:11


|