P1564 膜拜

题目描述

神牛有很多…当然…每个同学都有自己衷心膜拜的神牛.

某学校有两位神牛,神牛甲和神牛乙。新入学的N 位同学们早已耳闻他们的神话。

所以,已经衷心地膜拜其中一位了。现在,老师要给他们分机房。但是,要么保证整个机房都是同一位神牛的膜拜者,或者两个神牛的膜拜者人数差不超过M。另外,现在N位同学排成一排,老师只会把连续一段的同学分进一个机房。老师想知道,至少需要多少个机房。

输入输出格式

输入格式:

输入文件第一行包括N 和M。

之后N 行,每行一个整数,1 表示神牛甲的崇拜者,2 表示神牛乙的崇拜者。

输出格式:

输出一个整数,表示最小需要机房的数量。

输入输出样例

输入样例#1:

5 1
2
2
1
2
2

输出样例#1:

2

说明

对于30%的数据,有1 ≤ N ,M≤ 50;

对于100%的数据,有1 ≤ N,M ≤ 2500。

把2看成-1,

‘然后求一段最长序列,使得这个序列的绝对值之和小于m

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<cmath>
 4 #include<cstdlib>
 5 using namespace std;
 6 int n,m;
 7 int s[4000];
 8 int f[5000];
 9 void read(int &n)
10 {
11     char c=‘+‘;int x=0;bool flag=0;
12     while(c<‘0‘||c>‘9‘)
13     {c=getchar();if(c==‘-‘)flag=1;}
14     while(c>=‘0‘&&c<=‘9‘)
15     {x=x*10+(c-48);c=getchar();}
16     flag==1?n=-x:n=x;
17 }
18 int main()
19 {
20     read(n);read(m);
21     for(int i=1;i<=n;i++)
22     {
23         int a;
24         read(a);
25         if(a==1)
26             s[i]=s[i-1]+1;
27         if(a==2)
28             s[i]=s[i-1]-1;
29     }
30     for(int i=1;i<=n;i++)
31     {
32         f[i]=0x7ff;
33         for(int j=0;j<i;j++)
34             if(abs(s[i]-s[j])<=m||abs(s[i]-s[j])==i-j) // 绝对值小于m或是同种膜拜者
35                 f[i]=min(f[i],f[j]+1);
36     }
37     cout<<f[n]<<endl;
38     return 0;
39 }
时间: 2024-12-30 04:20:10

P1564 膜拜的相关文章

洛谷 P1564 膜拜

题目出处 s[i]表示前i个人对神牛的膜拜情况,如果膜拜神牛甲则s[i]=s[i-1]+1否则s[i]=s[i-1]-1.那么如果|s[i]-s[j]|<=m或者=i-j+1(也就是人数差不超过m或者全部崇拜某一个神牛),f[i]=min(f[i],f[i-j]+1) 下放代码 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 #include<cmath> 5 using na

做题单

错误 收藏了过多题目 QWQ P1383 高级打字机 P1270 “访问”美术馆 P1481 魔族密码 P1280 尼克的任务 P1271 聚会的快乐 P3631 [APIO2011]方格染色 P1243 排序集合 P2858 [USACO06FEB]奶牛零食Treats for the Cows P3146 [USACO16OPEN]248 P2890 [USACO07OPEN]便宜的回文Cheapest Palindrome P1896 [SCOI2005]互不侵犯 P3154 [CQOI2

Codevs3369 膜拜

3369 膜拜 题目描述 Description 神牛有很多…当然…每个同学都有自己衷心膜拜的神牛.某学校有两位神牛,神牛甲和神牛乙.新入学的N位同学们早已耳闻他们的神话.所以,已经衷心地膜拜其中一位了.现在,老师要给他们分机房.但是,要么保证整个机房都是同一位神牛的膜拜者,或者两个神牛的膜拜者人数差不超过M.另外,现在N位同学排成一排,老师只会把连续一段的同学分进一个机房.老师想知道,至少需要多少个机房. 输入描述 Input Description 输入文件第一行包括N和M.之后N行,每行一

P2456 - 膜拜神犇

P2456 - 膜拜神犇 Description 有一个 n 个点 m 条边的有向图, 蒟蒻可以从 1 号点出发在图上走, 并且最终需要回到 1 号点. 每个点都有一个神犇( 包括 1 号点), 每次经过一个没到过的点, 蒟蒻都会膜拜那位 神犇. 蒟蒻希望膜拜尽可能多的神犇. 由于蒟蒻膜拜神犇的欲望非常强烈, 所以他可以有一次机会逆着一条有向边的方向走. ( 需要注意的是, 这条边的方向不会改变). 你现在想知道, 蒟蒻最多能膜拜多少神犇? Input 第一行 2 个整数 n. m, 分别表示图

XMOJ 1133: 膜拜大牛 计算几何/两圆相交

1133: 膜拜大牛 Time Limit: 1 Sec  Memory Limit: 131072KiBSubmit: 9619  Solved: 3287 题目连接 http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1133 Description 由于wywcgs是个很菜的菜鸟,所以每到一个新的地方,他都必须去膜拜当地的大牛.但是大牛们都没空理他,所以无可奈何之下,wywcgs只能寻找其他 的办法.为了一次Orz到更多的大牛,他想到了一个好方

uva 230 Borrowers(摘)&lt;vector&gt;&quot;结构体“ 膜拜!

I mean your borrowers of books--those mutilators of collections, spoilers of the symmetry of shelves, and creators of odd volumes. --Charles Lamb, Essays of Elia (1823) 'The Two Races of Men' Like Mr. Lamb, librarians have their problems with borrowe

cogs 1656. 膜拜神犇

1656. 膜拜神犇 ★☆   输入文件:trioxorz.in   输出文件:trioxorz.out   简单对比时间限制:0.5 s   内存限制:128 MB [题目描述] bigmingod 是F.M.S信息组的组草,同时也是万人膜拜的神犇,整个年级暗恋他的女生不计其数,这让机房里的三只蒟蒻QYHDS,LZK,OIdiot羡慕嫉妒恨.为了获得像bigmingod一样的成就,这三只蒟蒻决定每次竞赛课前对他进行膜拜--三个人构成一个三角形,将bigmingod包围在内部(不包括边上),称为

膜拜acm大牛 虽然我不会这题,但是AC还是没有问题的~(转自hzwer)

wywcgs: 亦称Lord Wu,俗名吴垠,2009级厦门大学智能科学与技术学院研究生,本科就读于哈尔滨工业大学.因其深厚的算法功底与独到的思维方式,被尊为“吴教主”,至今声威犹存. 2006年起参加ACM/ICPC竞赛,获得分别获得上海.西安.长春三枚区域赛银牌. 2008年获得GCJ-BeiJing Onsite参赛资格,并在比赛中表现优异,获得Final资格,后因个人原因,推掉了总决赛资格,并忙于为各赛区出题. 2010年复出比赛,在福建省举办的全国邀请赛中力压群牛,获得赛区金牌,给同场

Github上最受关注的前端大牛 快来膜拜把!

Github上最受关注的前端大牛 快来膜拜吧! 来源:csdn 发布时间:2014-08-06 阅读次数:4058 14 本文列出了Github上最受关注的10位前端大牛.看看他们负责的项目和提交的代码,你是不是能从中学到些什么? 1. Paul Irish Github主页: https://github.com/paulirish 个人主页: http://paulirish.com 维基百科: http://en.wikipedia.org/wiki/Paul_Irish Paul Iri