网站如何做301重定向,qq网页版在线登录官网,襄阳公司网站建设,wordpress 文章列表展示插件题目描述 你有一条由N个红色的#xff0c;白色的#xff0c;或蓝色的珠子组成的项链(3N350)#xff0c;珠子是随意安排的。 这里是 n29 的二个例子: 第一和第二个珠子在图片中已经被作记号。 图片 A 中的项链可以用下面的字符串表示#xff1a; brbrrrbbbrrrrrbrrb…题目描述 你有一条由N个红色的白色的或蓝色的珠子组成的项链(3N350)珠子是随意安排的。 这里是 n29 的二个例子: 第一和第二个珠子在图片中已经被作记号。 图片 A 中的项链可以用下面的字符串表示 brbrrrbbbrrrrrbrrbbrbbbbrrrrb 假如你要在一些点打破项链,展开成一条直线然后从一端开始收集同颜色的珠子直到你遇到一个不同的颜色珠子在另一端做同样的事(颜色可能与在这之前收集的不同)。 确定应该在哪里打破项链来收集到最大数目的珠子。 例如在图片 A 中的项链中在珠子 9 和珠子 10 或珠子 24 和珠子 25 之间打断项链可以收集到8个珠子。 白色珠子什么意思? 在一些项链中还包括白色的珠子(如图片B) 所示。 当收集珠子的时候一个被遇到的白色珠子可以被当做红色也可以被当做蓝色。 表现含有白珠项链的字符串将会包括三个符号 r b 和 w 。 写一个程序来确定从一条被给出的项链可以收集到的珠子最大数目。 输入输出格式 输入格式 第 1 行: N, 珠子的数目 第 2 行: 一串长度为N的字符串, 每个字符是 r b 或 w。 输出格式 输出一行一个整数表示从给出的项链中可以收集到的珠子的最大数量。 输入输出样例 输入样例#1 复制 29
wwwbbrwrbrbrrbrbrwrwwrbwrwrrb输出样例#1 复制 11 思路暴力破圆为链。然后枚举断点。一直被一组数组卡卡了一中午很无语后来知道是如果一开始链的两端是白色w就需要改变一下端点颜色。 1 #includebits/stdc.h2 using namespace std;3 char c[1000];4 int main()5 {6 int T;7 8 9 while(cinT)
10 {
11 for(int i1;iT;i)//破圆
12 {
13 cinc[i];
14 c[Ti]c[i];
15 }
16 int MAX-0x7fffffff;
17 for(int i1;i2*T;i)//枚举
18 {
19 int num0;
20 int headi,taili-1;
21 while(c[tail]w) tail--;//端点不能为白色
22 char s1c[tail];
23 while(c[head]w) head;//端点不能为白色
24 char sc[head];
25 taili-1;headi;
26 while(1)
27 {
28 if(head2*T) break;
29 if(c[head]s||c[head]w) num;
30 else break;
31 head;
32
33 }
34 while(1)
35 {
36 if(tail1) break;
37 if(c[tail]s1||c[tail]w) num;
38 else break;
39 tail--;
40
41 }
42
43 MAXmax(MAX,num);
44 }
45 coutmin(MAX,T)endl;//最大就是珠子的个数
46 }
47 } View Code 转载于:https://www.cnblogs.com/Auroras/p/10862665.html