真~签到题qwq

昨天在考场上先写了个70分暴力dp,然后发现好像可以优化。因为结界技能的模型相当于要求出 对于每个物品,仅仅不选它的背包是什么。。。。  于是当场脑补出两种做法: 前缀和后缀背包卷积NTT、以及单点删除背包的分治做法。

想了想两种做法都是 O(N^2 log N) 的,并且NTT我更有把握一点(写得多不太容易gg),所以果断写了NTT。。。

复测完之后,带log的只有NTT被卡成暴力分gg,其他的分治做法的都被放过去了qwq(虽然正解没log)。

艹NTT的log大的上天,我以后再也不写了mmp!!!

正解是这样的:仔细想想不难发现,这个背包删除物品其实可以做到 O(N),逆着退一下就好了hhhhhh。

GG

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int ha=998244353,maxn=205;
int F[maxn][105],f[maxn],g[maxn],tp[maxn];
int n,m,u,v,ni[maxn],op,num,now,P[maxn],Q;
inline int add(int x,int y){ x+=y; return x>=ha?x-ha:x;}
inline int ksm(int x,int y){ int an=1; for(;y;y>>=1,x=x*(ll)x%ha) if(y&1) an=an*(ll)x%ha; return an;}inline void update(int *a,int x){a[0]=add(a[0],a[1]*(ll)u%ha);for(int i=1;i<=tp[x];i++) a[i]=add(a[i]*(ll)v%ha,a[i+1]*(ll)u%ha);
}inline void output(){for(int i=1,ans;i<=n;i++){ans=0;for(int j=1;j<=tp[i];j++) ans=add(ans,F[i][j]*(ll)j%ha);printf("%d ",ans);}
}inline void calc(){memset(f,0,sizeof(f));f[0]=1;for(int i=1;i<=num;i++){v=F[P[i]][0],u=add(1,ha-v);for(int j=i;j>=0;j--) f[j]=add(f[j]*(ll)v%ha,j?f[j-1]*(ll)u%ha:0);}for(int i=1,ans,iv,iu;i<=num;i++){v=F[P[i]][0],u=add(1,ha-v),ans=0;iv=ksm(v,ha-2),iu=ksm(u,ha-2);if(v){g[0]=f[0]*(ll)iv%ha;for(int j=1;j<num;j++) g[j]=add(f[j],ha-g[j-1]*(ll)u%ha)*(ll)iv%ha;}else for(int j=0;j<num;j++) g[j]=f[j+1];for(int j=0;j<num;j++) ans=add(ans,ni[j+1]*(ll)g[j]%ha);printf("%d ",ans*(ll)u%ha);}puts("");
}inline void solve(){scanf("%d",&Q);while(Q--){scanf("%d",&op);if(!op){scanf("%d%d%d",&now,&u,&v);u=u*(ll)ksm(v,ha-2)%ha,v=add(1,ha-u);update(F[now],now);}else{scanf("%d",&num);for(int i=1;i<=num;i++) scanf("%d",P+i);calc();}}output();
}int main(){ni[1]=1;for(int i=2;i<=201;i++) ni[i]=-ni[ha%i]*(ll)(ha/i)%ha+ha;scanf("%d",&n);for(int i=1;i<=n;i++) scanf("%d",&now),F[i][now]=1,tp[i]=now;solve();return 0;
}

  

转载于:https://www.cnblogs.com/JYYHH/p/9006691.html

「CTSC2018」假面相关推荐

  1. Loj #2554. 「CTSC2018」青蕈领主

    Loj #2554. 「CTSC2018」青蕈领主 题目描述 "也许,我的生命也已经如同风中残烛了吧."小绿如是说. 小绿同学因为微积分这门课,对"连续"这一概 ...

  2. [分治FFT]「CTSC2018」青蕈领主

    题目梗概 定义一个序列是连续的,当且仅当这个序列的最大值-最小值不超过序列长度-1. 现在有一个长度为\(n\)的排列,给出以每个位置为右端点的最长连续区间的长度,求满足的排列的方案数. 解题思路 如 ...

  3. [边分治+线段树合并]「CTSC2018」暴力写挂

    题目梗概 给出两棵1为根的树,求\(d[x]+d[y]-d[lca(x,y)]-d'[lca(x,y)]\)的最大值 解题思路 套路化简之后\((d[x]+d[y]+dis(x,y)-2*d'[lca ...

  4. 如何直观地理解「协方差矩阵」?

    如何直观地理解「协方差矩阵」? Xinyu Chen Urban Traffic Data Analytics 372 人赞同了该文章 协方差矩阵在统计学和机器学习中随处可见,一般而言,可视作方差和协 ...

  5. 消除左递归实验代码_「leetcode」108. 构造二叉搜索树【递归】【迭代】详解!

    构造二叉搜索树,一不小心就平衡了 ❞ 108.将有序数组转换为二叉搜索树 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树 ...

  6. 不带头节点的链表有哪些缺点_23张图!万字详解「链表」,从小白到大佬!

    链表和数组是数据类型中两个重要又常用的基础数据类型. 数组是连续存储在内存中的数据结构,因此它的优势是可以通过下标迅速的找到元素的位置,而它的缺点则是在插入和删除元素时会导致大量元素的被迫移动,为了解 ...

  7. 一位老码农的分享:一线程序员该如何面对「中年危机」?

    如果这是第二次看到我的文章,欢迎文末扫码订阅我个人的公众号(跨界架构师)哟~   本文长度为2728字,建议阅读8分钟. 坚持原创,每一篇都是用心之作- 先来聊一下这个问题的背景吧. 前两天有小伙伴问 ...

  8. 机器人 Ameca「苏醒」瞬间逼真到令人恐惧,网友纷纷惊叹……

    整理 | 禾木木 出品 | AI科技大本营(ID:rgznai100) 近日,国内外网友都被一段机器人「苏醒」的视频惊讶到. 视频开始时,机器人似乎已经睡着,眼睛闭着,头部略微向下倾斜.随着肩膀的伸展 ...

  9. AI 复活「她」! GPT-3 帮美国小哥复刻逝去未婚妻,但又夺走她……

    整理 | 禾木木 出品 | AI科技大本营(ID:rgznai100) 今年 7 月,一名33岁的美国小哥 Joshua Barbeau 在未婚妻去世后,根据她在 Facebook 和 twitter ...

最新文章

  1. windows下线程创建
  2. 太优秀了!GitHub 标星 40000+ 的大佬和他们的公众号
  3. pythonrequests说明_解决Python requests 报错方法集锦
  4. 前端 ---jQuery的补充
  5. java 计算随机数_JAVA获取随机数
  6. 2020年前端面试之JS手写代码题合集
  7. 用婴儿拍的视频训练自监督模型,学到了高级视觉表征
  8. opencv java水平投影_OpenCV实现图像在水平方向上投影
  9. 将一个十进制转换为二进制,八进制,十六进制
  10. MySQL-快速入门(10)触发器
  11. 解决 gcc/g++ 编译动态库通过却无法运行的问题
  12. Java 网络编程之Socket详解
  13. ubuntu加入Windows的AD域(使用SSSD和Realm的方式)
  14. 速卖通AE平台+聚石塔+奇门 完整教程V2
  15. sublime3 text 文件名称中文显示成框框
  16. Python报错UnicodeEncodeError: 'gbk' codec can't encode character '\xa9' in position 1919: illegal mult
  17. Python虚拟环境(一):基于virtualenv+virtualenvwrapper创建python虚拟环境
  18. 计算机上用户和组的意义,在域中管理用户和组
  19. 【论文解读】Attention is All you need
  20. 传输加载优化(资源压缩、资源缓存、HTTP2)

热门文章

  1. 以下用于数据存储领域的python第三方库是-Python3爬虫学习之MySQL数据库存储爬取的信息详解...
  2. 下列关于python的描述正确的是-下列关于Python的说法,错误的是()。_学小易找答案...
  3. 初学者自学python要看什么书-初学者如何学习Python?掌握这17个实用小技巧快速入门!...
  4. python详细安装教程环境配置-python环境安装详细步骤
  5. python 加注拼音-又一个奇葩要求,Python是如何将“中文”转“拼音”的?
  6. python流程控制-Python 流程控制
  7. python创建csv文件并写入-Python 读写 CSV
  8. python numpy库安装-Python Numpy库安装与基本操作示例
  9. python经典100例答案pdf-Python3基础训练经典100题(带答案)下载
  10. python 装饰器 参数-python装饰器参数那些事_接受参数的装饰器