【洛谷P5369】【PKUSC2018】最大前缀和

题面

洛谷

题解

状压\(dp\)。
我们设\(s[S]\)表示选了\(S\)这个状态的数的和,\(f[S]\)表示最大前缀和为\(s[S]\)的方案数,\(g[S]\)表示任意前缀和均为负的方案数。
我们在输入的时候可以在\(O(2^n*n)\)的复杂度将\(s\)的值算出来。
接下来就可以转移了。
枚举所有状态。
如果\(>0\)则若不包含\(f[S | (1 << i - 1)] += f[S]\)
如果\(<0\)小于零若包含则\(g[S] += g[S ⊕ (1<<i-1)]\)
这里的复杂度也是\(O(2^n*n)\)的
答案就是\(\sum s[S] * f[S] * g[\bar{S}]\)

代码

#include <bits/stdc++.h>const int maxn = 25;
const int mod = 998244353;
typedef long long ll;int n, m, i, j, k;
int ans, full;
int a[maxn], f[1 << maxn], g[1 << maxn];
ll s[1 << maxn];int main() {scanf("%d",&n);full = (1 << n) - 1;g[0] = 1;for(int i = 1;i <= n;i++) {scanf("%d",a + i);    f[1 << i - 1] = 1;for(int S = 0;S <= full;S++)if(S & (1 << i - 1))s[S] += a[i];   }for(int S = 1;S <= full;S++) {if(s[S] > 0) {for(int i = 1, j;i <= n;i++) {if(!(S & (1 << i - 1)))(f[S | (1 << i - 1)] += f[S]) %= mod;     }} else {for(int i = 1, j;i <= n;i++)if(S & (1 << i - 1))(g[S] += g[S ^ (1 << i - 1)]) %= mod;  }}for(int S = 1;S <= full;S++)(ans += (ll)s[S] * f[S] % mod * g[S ^ full] % mod) %= mod;printf("%d\n",(ans + mod) % mod);return 0;
}

转载于:https://www.cnblogs.com/Sai0511/p/11307610.html

洛谷p5369[PKUSC2018]最大前缀和相关推荐

  1. 洛谷p5465 [PKUSC2018]星际穿越

    [洛谷p5465][PKUSC2018]星际穿越 题面 洛谷 题解 众所周知PKUSC的题大多都不可做,今天好不容易看到1个倍增水题(我猜当时应该全场切了). 我们设\(f[i][j]\)表示\(i\ ...

  2. 一中OJ #3509 七的倍数 [USACO Jan16,洛谷P3131] | 同余前缀和 | 解题报告

    一中OJ | #3509 七的倍数 [USACO Jan16 Silver , Subsequences Summing to Sevens] 时限 1000MS/Case 内存 128MB/Case ...

  3. 洛谷[P1719 最大加权矩形] {前缀和与差分} 奋斗的珂珂~

    洛谷[P1719 最大加权矩形] {前缀和与差分} 题目描述 为了更好的备战NOIP2013,电脑组的几个女孩子LYQ,ZSC,ZHQ认为,我们不光需要机房,我们还需要运动,于是就决定找校长申请一块电 ...

  4. 题161.洛谷P3131 前缀和与差分-Subsequences Summing to Sevens S

    文章目录 题161.洛谷P3131 前缀和与差分-Subsequences Summing to Sevens S 一.题目 二.题解 题161.洛谷P3131 前缀和与差分-Subsequences ...

  5. LOJ6435 洛谷5465 「PKUSC2018」星际穿越 倍增

    题目链接: loj6435 洛谷5465 蒟蒻zyd:这不是大水题吗?看我写个O(nlog2n)O(nlog^2n)O(nlog2n)的诡异ST表卡卡常数跑过去 题目:输出区间距离和 蒟蒻zyd:(笑 ...

  6. 洛谷P3688/uoj#291. [ZJOI2017]树状数组

    传送门(uoj) 传送门(洛谷) 这里是题解以及我的卡常数历程 话说后面那几组数据莫不是lxl出的这么毒 首先不难发现这个东西把查询前缀和变成了查询后缀和,结果就是查了\([l-1,r-1]\)的区间 ...

  7. Luogu5369 [PKUSC2018]最大前缀和

    题目链接:洛谷 题目大意:给定一个长为$n$的整数序列,求全排列的最大前缀和(必须包含第一个数)之和. 数据范围:$1\leq n\leq 20,1\leq \sum_{i=1}^n|a_i|\leq ...

  8. 洛谷 P4175: bzoj 1146: [CTSC2008]网络管理

    令人抓狂的整体二分题.根本原因还是我太菜了. 在学校写了一个下午写得头晕,回家里重写了一遍,一个小时就写完了--不过还是太慢. 题目传送门:洛谷P4175. 题意简述: 一棵 \(n\) 个结点的树, ...

  9. 洛谷P1667/[10.22 模拟赛] 数列 (思维+模拟)

    洛谷P1667 数列 题目描述 给定一个长度是n的数列A,我们称一个数列是完美的,当且仅当对于其任意连续子序列的和都是正的.现在你有一个操作可以改变数列,选择一个区间[X,Y]满足\(A_X +A_{ ...

  10. Educational Codeforces Round 81 (Rated for Div. 2) F.Good Contest \ 洛谷 划艇 组合 计数dp

    cf传送门 P3643 [APIO2016]划艇 文章目录 题意: 思路: 题意: aia_iai​在[li,ri][l_i,r_i][li​,ri​]等概率随机选一个数,求aaa数组不增的概率. 思 ...

最新文章

  1. React Native填坑之旅 -- 回归小插曲
  2. vue循环出来的数据,通过点击事件改变了数据,但是视图却没有更新
  3. Firebug快速入门(二)
  4. CRF++命名实体识别(NER)初步试探
  5. flink 6-检查点和水位线
  6. Oracle业务适合用PostgreSQL去O的一些评判标准
  7. [转载] Python中TFTP的理解
  8. Hadoop Hive概念学习系列之hive的正则表达式初步(六)
  9. PhotoSwipe源码解读系列(二)
  10. “字节云”火山引擎正式发布,对外开放推荐算法等核心技术!
  11. Mask-Predict: Parallel Decoding of Conditional Masked Language Models
  12. java 爬 维基百科_爬取维基百科词条
  13. 基于 Arduino 的 RFID 识别实验
  14. 自动与时间服务器时间同步,Windows系统时间同步(附时间同步服务器地址)
  15. (源代码)用Python制作疫情的实时数据地图(PS:全国以及每个省)
  16. FPGA基础知识21(PL控制PS端DDR的设计)
  17. JSP入门之表格以及常用表单元素(总结自身编程经验以及多本教科书)
  18. Unhandled exception:java.lang.IllegalAccessException提示报错
  19. Google Play上架App设置隐私政策声明问题
  20. 怎样由标准正态分布得到任意正态分布

热门文章

  1. [bugbank]漏洞挖掘奇思妙想
  2. 三角形箭头向右的_css实现三角箭头
  3. oracle 同义词循环连,Oracle出现ORA-01775:同义词的循环链问题
  4. 不知道STAR法则还敢去面试?备受500强HR推崇的STAR法则详解
  5. 英语学习详细笔记(十)形容词
  6. 微信公众图文消息html,微信公众号图文消息怎么添加图片背景?
  7. 远程连接的计算机的ip地址,怎么远程控制已知IP地址的电脑
  8. 在C语言中的实型变量分为两种类型6,在C语言中的实型变量分为两种类型.doc
  9. word文件做一半未响应_Word经常出现未响应怎么办?
  10. Linux网络编程-UDP单播服务客户端代码实现