标签:src clu ret col fine 应该 img 分析 define
全世界最笨的人
出现了
这题真的好欺骗我的感情,表面上先给我过了,让我快乐一下,背地里再把我给踢掉
TUT干嘛这么坏啊!!!!!!!!!!!!!
好吧,其实这个错误昨天晚上就反过了
但是世界上最笨的女同学她是不会改的
如果你下次还不改
那你还是世界上最笨的女同学
如果你改了
那你......
TUT...
我们来分析一下,为什么这个女同学,连A题都过不了
这题的题意很简单,就是要求长得像AAABBB的序列的最大值
我先选了一种很弱智的方法
就是,先求前面那个连续序列的长度,再求后面那个连续序列的长度 两个两个求
也没把答案存在数组里.........很傻
第二种方法
就是那个欺骗我感情的方法
#include<bits/stdc++.h> using namespace std; #define re register #define sys system("pause"); inline int read(){ re int x=0,f=1;char c=getchar(); while(c<‘0‘||c>‘9‘){if(c==‘-‘) f=-1;c=getchar();} while(c>=‘0‘&&c<=‘9‘) x=(x<<3)+(x<<1)+(c^48),c=getchar(); return x*f; } int a[100010]; int dp[100010]; int main(){ int n; n = read(); int j,num; for (int i = 1; i <= n;i++) a[i] = read(); int ans = 1; int cnt = 0; for (int i = 1; i <= n;i++){ cnt++; dp[cnt] = 1; for ( j =i ; j+1 <= n;j++){ if(a[j]==a[j+1]){ dp[cnt]++; } else{ i = j; break; } } } for (int i = 1; i <= cnt; i++) { num = min(dp[i], dp[i + 1]); ans = max(num, ans); } cout << ans * 2; return 0; }
不知道改进之后对不对,cf上现在还不能交
不过我感觉应该没什么问题了
#include<bits/stdc++.h> using namespace std; #define int long long #define re register #define sys system("pause"); inline int read(){ re int x=0,f=1;char c=getchar(); while(c<‘0‘||c>‘9‘){if(c==‘-‘) f=-1;c=getchar();} while(c>=‘0‘&&c<=‘9‘) x=(x<<3)+(x<<1)+(c^48),c=getchar(); return x*f; } int a[100010],dp[100010],j,num,ans=1,cnt,n; int32_t main(){ n = read(); for (int i = 1; i <= n;i++) a[i] = read(); for (int i = 1; i <= n;i++){ cnt++; dp[cnt] = 1; for ( j =i ; j<= n;j++){ if(a[j]!=a[j+1]){ dp[cnt] = j - i + 1; i = j; break; } } } for (int i = 1; i <= cnt-1; i++){ num = min(dp[i], dp[i + 1]); ans = max(num, ans); } cout << ans * 2; sys return 0; }
Codeforces Round #545 (Div. 2)A. Sushi for Two
标签:src clu ret col fine 应该 img 分析 define
原文地址:https://www.cnblogs.com/guaguastandup/p/10498746.html