奶牛抗议 洛谷p2344
题目背景
Generic Cow Protests, 2011 Feb
题目描述
约翰家的N 头奶牛正在排队游行抗议。一些奶牛情绪激动,约翰测算下来,排在第i 位的奶牛的理智度为Ai,数字可正可负。
约翰希望奶牛在抗议时保持理性,为此,他打算将这条队伍分割成几个小组,每个抗议小组的理智度之和必须大于或等于零。奶牛的队伍已经固定了前后顺序,所以不能交换它们的位置,所以分在一个小组里的奶牛必须是连续位置的。除此之外,分组多少组,每组分多少奶牛,都没有限制。
约翰想知道有多少种分组的方案,由于答案可能很大,只要输出答案除以1000000009 的余数即可。
输入输出格式
输入格式:
• 第一行:单个整数N,1 ≤ N ≤ 100000
• 第二行到第N + 1 行:第i + 1 行有一个整数Ai,−10^5 ≤ Ai ≤ 10^5
输出格式:
单个整数:表示分组方案数模1000000009 的余数
输入输出样例
4 2 3 -3 1
4
说明
解释:如果分两组,可以把前三头分在一组,或把后三头分在一组;如果分三组,可以把中间两头分在一组,第一和最后一头奶牛自成一组;最后一种分法是把四头奶牛分在同一组里。
<=s[ i ] 的 dp [j] 的和可以使用树状数组维护
#include<iostream>
#include<cstdio>
#include<algorithm>
#define f(i,l,r) for(i=(l);i<=(r);i++)
using namespace std;
const int MAXN=100005,MOD=1000000009;
struct Node{int v,id,Hash;bool operator < (const Node& x)const{return v<x.v;}
}sum[MAXN];
int n,a[MAXN],Tree[MAXN],Hash[MAXN],sz;
bool cmp(Node a,Node b)
{return a.id<b.id;
}
void Add(int x,int d)
{while(x<=sz){Tree[x]=(Tree[x]+d)%MOD;x+=x&(-x);}
}
int Query(int x)
{int res=0;while(x>0){res=(res+Tree[x])%MOD;x-=x&(-x);}return res;
}
int main()
{int i,j=1,tot=0,pos,ans;scanf("%d",&n);sum[0].v=sum[0].id=0;f(i,1,n){scanf("%d",&a[i]);sum[i].v=sum[i-1].v+a[i];sum[i].id=i;}sort(sum,sum+1+n);sum[0].Hash=1;f(i,1,n){if(sum[i].v!=sum[i-1].v){sum[i].Hash=++j;}else sum[i].Hash=j;}sz=j;sort(sum,sum+1+n,cmp);Add(sum[0].Hash,1);f(i,1,n){ans=Query(sum[i].Hash);Add(sum[i].Hash,ans);}printf("%d\n",ans);return 0;
}
奶牛抗议 洛谷p2344相关推荐
- P2344 奶牛抗议
P2344 奶牛抗议 题目背景 Generic Cow Protests, 2011 Feb 题目描述 约翰家的N 头奶牛正在排队游行抗议.一些奶牛情绪激动,约翰测算下来,排在第i 位的奶牛的理智度为 ...
- [洛谷P2124] 奶牛美容
洛谷题目链接:奶牛美容 题目描述 输入输出格式 输入格式: 输出格式: 输入输出样例 输入样例#1: 6 16 ................ ..XXXX....XXX... ...XXXX... ...
- 洛谷1345 [Usaco5.4]奶牛的电信
题目描述 农夫约翰的奶牛们喜欢通过电邮保持联系,于是她们建立了一个奶牛电脑网络,以便互相交流.这些机器用如下的方式发送电邮:如果存在一个由c台电脑组成的序列a1,a2,...,a(c),且a1与a2相 ...
- luogu P2344 奶牛抗议 DP 树状数组 离散化
P2344 奶牛抗议 最新讨论 暂时没有讨论 题目背景 Generic Cow Protests, 2011 Feb 题目描述 约翰家的N 头奶牛正在排队游行抗议.一些奶牛情绪激动,约翰测算下来,排在 ...
- 洛谷P1868 饥饿的奶牛 题解
洛谷P1868 饥饿的奶牛 题解 题目链接:P1868 饥饿的奶牛 题意: 有一条奶牛冲出了围栏,来到了一处圣地(对于奶牛来说),上面用牛语写着一段文字. 现用汉语翻译为: 有 NNN 个区间,每个区 ...
- BZOJ1232 安慰奶牛cheer (洛谷2916)
标签:并查集,最小生成树 tips:bzoj这题为权限题,可以去洛谷2916提交 Description Farmer John变得非常懒,他不想再继续维护供奶牛之间供通行的道路.道路被用来连接N ( ...
- 奶牛的耳语c语言,洛谷P1296 奶牛的耳语
题目描述 在你的养牛场,所有的奶牛都养在一排呈直线的牛栏中.一共有 n 头奶牛,其中第 i 头牛在直线上所处的位置可以用一个整数坐标 pi(0≤pi≤10^8) 来表示.在无聊的日子里,奶牛们常常 ...
- 洛谷·bzoj·伟大的奶牛聚集Great Cow Gather
初见安~~这里是传送门:洛谷P2986 & bzoj P1827 题目描述 Bessie is planning the annual Great Cow Gathering for cows ...
- 洛谷 P1843 奶牛晒衣服
题目背景 熊大妈决定给每个牛宝宝都穿上可爱的婴儿装 . 于是 , 为牛宝宝洗晒衣服就成了很不爽的事情. 题目描述 熊大妈请你帮助完成这个重任 . 洗完衣服后 , 你就要弄干衣服 . 衣服在自然条件下用 ...
- hash:奶牛看地图(洛谷P3405 [USACO16DEC]Cities and States S)
洛谷传送门 解析 其实就是每组2个长度为2的字符串统计交叉相等的个数 每个序列可以用一个26进制的数来表示,总要加个标签,勉强算hash..(想叫<水题> ) 最大值为26*26(ZZ) ...
最新文章
- 不带头节点的链表有哪些缺点_23张图!万字详解「链表」,从小白到大佬!
- 好程序员三期Android高端班开班典礼-乱世看我称雄
- HarmonyOS之生物特征识别的功能和使用
- form表单 无法提交js动态添加的表单元素问题。。
- TortoiseGit不同分支合并代码
- Python:以鸢尾花数据为例,介绍决策树算法
- log4j.properties配置
- 软件开发人员薪资标准 人月_IT从业者培训前后薪资差距近3000块钱
- VS2010 C# 4.0新特性一览
- 【操作系统】第1章 操作系统概论
- UNIX 环境高级编程(四)—— dirent.h
- DataFactory插入MySQL中文乱码问题
- 一个操作共享内存的类!可以方面的添加,删除数据,包括各种结构体!
- 在分页后web报表的最后一页补足空行的方法
- 记录:ubuntu安装zlog及使用
- Java最常见208道面试题:Java大土豆答案
- php单页菜单,纯CSS3单页切换导航菜单界面设计
- NeRF神经辐射场学习笔记(二)——Pytorch版NeRF实现以及代码注释
- nginx 会话保持
- 机器学习多步时间序列预测解决方案