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 的余数

输入输出样例

输入样例#1:

4
2
3
-3
1

输出样例#1:

4

说明

解释:如果分两组,可以把前三头分在一组,或把后三头分在一组;如果分三组,可以把中间两头分在一组,第一和最后一头奶牛自成一组;最后一种分法是把四头奶牛分在同一组里。

离散化+树状数组,

f[i] 为到第 i 只奶牛有几种分组

f[i]=∑j f[j](Sum[i]>=Sum[j])

f[i] = 所有的sum[j](s[j]<=sum[i]),将所有小于sum[i]的所有sum[j]加起来,每次需要把f[i]插入到树状数组中,所以树状数组刚好可以维护。

注意I64d与lld的使用。首先将f[0]插入,f[0] = 1;

 1 #include<cstdio>
 2 #include<algorithm>
 3 #define LL long long
 4
 5 using namespace std;
 6 const int MAXN = 100100;
 7 const int mod = 1000000009 ;
 8 struct Cow{
 9     LL sum;
10     int p;
11     bool operator < (const Cow &a) const
12     {
13         return sum < a.sum;
14     }
15 }a[MAXN];
16 int p[MAXN],n;
17 LL sum[MAXN];
18 int lowbit(int x)
19 {
20     return x&(-x);
21 }
22 void update(int x,LL w)
23 {
24     while (x<=n)
25     {
26         sum[x] = (sum[x]+w)%mod;
27         x += lowbit(x);
28     }
29 }
30 LL query(int x)
31 {
32     LL ans = 0;
33     while (x)
34     {
35         ans = (ans+sum[x])%mod;
36         x -= lowbit(x);
37     }
38     return ans;
39 }
40 int main()
41 {
42     scanf("%d",&n);
43     for (int i=1; i<=n; ++i)
44     {
45         LL w;
46         scanf("%lld",&w);
47         a[i].sum = a[i-1].sum + w;
48         a[i].p = i;
49     }
50     a[n+1].sum = 0;
51     a[n+1].p = n+1;
52     sort(a+1,a+n+2);
53     int num = 0;
54     for (int i=1; i<=n+1; ++i)
55     {
56         if (i==1||a[i].sum!=a[i-1].sum) ++num;
57         p[a[i].p] = num;
58     }
59     update(p[n+1],1);
60     LL tmp = 0;
61     for (int i=1; i<=n; ++i)
62     {
63         tmp = query(p[i]);
64         update(p[i],tmp);
65     }
66     printf("%lld",tmp);
67     return 0;
68 }

转载于:https://www.cnblogs.com/mjtcn/p/7099844.html

P2344 奶牛抗议相关推荐

  1. luogu P2344 奶牛抗议 DP 树状数组 离散化

    P2344 奶牛抗议 最新讨论 暂时没有讨论 题目背景 Generic Cow Protests, 2011 Feb 题目描述 约翰家的N 头奶牛正在排队游行抗议.一些奶牛情绪激动,约翰测算下来,排在 ...

  2. usaco 奶牛集会 奶牛抗议

    奶牛集会 Description 约翰家的N头奶牛每年都会参加"哞哞大会" .哞哞大会是世界奶牛界的盛事.集会上 的活动很多,比如堆干草,跨栅栏,摸牛仔的屁股等等.当然,哞哞大叫肯 ...

  3. 【USACO】奶牛抗议 树状数组+dp

    题目描述 约翰家的 N 头奶牛正在排队游行抗议.一些奶牛情绪激动,约翰测算下来,排在第 i 位的奶牛 的理智度为 A i ,数字可正可负. 约翰希望奶牛在抗议时保持理性,为此,他打算将这条队伍分割成几 ...

  4. noip2017考前整理(未完)

    快考试了,把我以前写过的题回顾一下. Noip2007 树网的核:floyd,推出性质,暴力. Noip2008 笨小猴:模拟 Noip2008 火柴棒等式:枚举 Noip2008 传纸条:棋盘dp ...

  5. P1569 [USACO11FEB]属牛的抗议Generic Cow Prote…

    P1569 [USACO11FEB]属牛的抗议Generic Cow Prote- 题目描述 Farmer John's N (1 <= N <= 100,000) cows are li ...

  6. 洛谷 P1569 [USACO11FEB]属牛的抗议Generic Cow Prote…

    P1569 [USACO11FEB]属牛的抗议Generic Cow Prote- 题目描述 Farmer John's N (1 <= N <= 100,000) cows are li ...

  7. 洛谷P1569 [USACO11FEB]属牛的抗议Generic Cow Prote…

    题目描述 Farmer John's N (1 <= N <= 100,000) cows are lined up in a row and numbered 1..N. The cow ...

  8. 2021-2027全球与中国奶牛冻精市场现状及未来发展趋势

    [报告类型]产业研究 [报告价格]¥4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了全球与中国奶牛冻精行业市场行业相关概述.全 ...

  9. 魔兽世界服务器位面 稳定,因抗议《魔兽世界》位面技术在RP服务器中被取消

    <魔兽世界>官方在今天宣布,游戏中的位面技术已经在RP服务器中取消,原因是该技术在社区中受到了大量玩家的抗议. 不久前,一些<魔兽世界>玩家曾举办了一场名为"Tour ...

最新文章

  1. 10g TNS 13541 监听错误 tnsping可以但是conn system/manager@mult1.net 报错
  2. 神经网络中的激活函数的作用和选择
  3. 「SVN」Linux下svn使用命令
  4. 《DSP using MATLAB》Problem 7.4
  5. CString之GetBuffer、ReleaseBuffer
  6. 中国第一个发《Nature》的竟然是清朝人!被皇帝夸天下第一,他却觉得羞耻..........
  7. 高精度:麦森数*(洛谷P1045)
  8. wordpress雪花下雪WP Snow Effect插件
  9. 2017.10.7 最长上升子序列 思考记录
  10. 哈啰单车失窃数十辆 盗窃者竟有摩拜员工!只因其又新又好骑...
  11. UIImagePickerController PAD /IPHONE 上注意事项
  12. Flink SQL 实战:HBase 的结合应用
  13. 第六次全国人口普查数据分析
  14. 3dmax渲染出来的图不清晰?
  15. rabbitmq批量确认结合qos导致的消费者假死和消息丢失问题
  16. 第四方支付崛起,聚合支付为什么这么火?
  17. 计算机应用基础的课程目的,《计算机应用基础》课程教学大纲
  18. ARCGIS中坐标转换及地理坐标、投影坐标的定义(转载)
  19. java freemarker导出word 带图片,文件导出后图片无法使用office正常打开
  20. 张志华-统计机器学习-概率论导论

热门文章

  1. 理解和使用systrace
  2. Android 开源框架之 Android-async-http 源码解读
  3. mysql实时物化到clickhouse(MaterializeMySQL)
  4. JZOJ 5398. 【NOIP2017提高A组模拟10.7】Adore
  5. JZOJ 5163. 【NOIP2017模拟6.25】PS的烦恼
  6. 柯泰测试同步采集软件,上海近场测试设备_柯泰测试
  7. android表情输入键盘,GitHub - UKfire/Emotion: 帮你的Android应用快速集成表情键盘
  8. ICCV 2017 《Unsupervised Learning from Video to Detect Foreground Objects in Single Images》论文笔记
  9. c语言memset函数用法,深入学习C语言中memset()函数的用法
  10. python中frame用法_python操作dataFrame基本知识点