题目描述:


有26重循环,1<=x,y<= 105 10^5

题解:

我们注意到x,y最多只有一个是变量,于是我们可以连出一个森林。
设f[i][j]为底i重循环选j,它和它的子树的方案数。
直接求和,乘起来即可。
最后求答案就是把各棵树根的方案数乘起来。

Code:

#include<cstdio>
#define ll long long
#define fo(i, x, y) for(ll i = x; i <= y; i ++)
using namespace std;const ll mo = 12015858;
ll n, b[27][27], f[27][100005], s[27][100005];
struct node {ll x, y;
}a[27][2];void get(node &a) {char c = ' '; for(;!((c >= 'a' && c <= 'z') || (c >= '0' && c <= '9')); c = getchar());if(c >= 'a' && c <= 'z') {a.x = 1; a.y = c - 'a' + 1;} else {a.x = 0;for(;c >= '0' && c <= '9'; c = getchar()) a.y = a.y * 10 + c - 48;}
}void Init() {scanf("%lld", &n);fo(i, 1, n) get(a[i][0]), get(a[i][1]);fo(i, 1, n) {if(a[i][0].x) b[a[i][0].y][++ b[a[i][0].y][0]] = i;if(a[i][1].x) b[a[i][1].y][++ b[a[i][1].y][0]] = i;}
}void dg(ll x) {fo(i, 1, 100000) f[x][i] = 1;fo(i, 1, b[x][0]) {ll y = b[x][i];dg(y);fo(j, 1, 100000) {if(a[y][0].x) {if(j <= a[y][1].y)f[x][j] *= s[y][a[y][1].y] - s[y][j - 1]; else f[x][j] = 0;} else {if(a[y][0].y <= j)f[x][j] *= s[y][j] - s[y][a[y][0].y - 1]; else f[x][j] = 0;}f[x][j] = (f[x][j] % mo + mo) % mo;}}fo(i, 1, 100000) s[x][i] = (s[x][i - 1] + f[x][i]) % mo;
}void End() {ll ans = 1;fo(i, 1, n) if(!(a[i][0].x || a[i][1].x))dg(i), ans *= s[i][a[i][1].y] - s[i][a[i][0].y - 1], ans = (ans % mo + mo) % mo;printf("%lld", ans);
}int main() {Init();End();
}

JZOJ 5207【GDOI2018模拟7.7】暴力大神hxx相关推荐

  1. 【GDOI2018模拟7.7】暴力大神hxx 树形dp

    题意:给你n个嵌套for语句,然后从第二个开始每一个循环的起点或者是终点是变量,问你会循环多少次. 这是一道好题. 手玩一下可以很容易发现,上下之间有可以递推的关系,但是直接递推会炸,所以需要dp. ...

  2. 「6月雅礼集训 2017 Day4」暴力大神hxx

    [题目大意] 给出一个n重循环,每重循环有范围$[l, r]$,其中$l$,$r$可能是之前的变量,也可能是常数.求循环最底层被执行了多少次. 其中,保证每个循环的$l$,$r$最多有一个是之前的变量 ...

  3. LCYZ NOIP模拟赛 —— By t14t41t[大神的题都是四星up]

    昨天三个题 ,匆忙做完,没能深刻理解题意,做的很不好,我反省,我反省,我反省. 很不错的题(Orz dqsAK大神 Orz lcyz出题人t14t41t Orz lcyz 大神 Archon) T1: ...

  4. 2021年大数据Flink(四十):​​​​​​​Flink模拟双十一实时大屏统计

    目录 Flink模拟双十一实时大屏统计 需求 数据 编码步骤: 1.env 2.source 3.transformation 4.使用上面聚合的结果,实现业务需求: 5.execute 参考代码 实 ...

  5. 自学AE AK大神笔记021_模拟枪口火光

    自学AE AK大神笔记021_模拟枪口火光 参考资料以及下载资源 https://videocopilot.net.cn/tutorials/simulated_lighting/ 概述 • 在视频素 ...

  6. python3写一个计算器_Python3 写了一个简单的模拟计算器 总是报错 有知道的大神 帮忙解答下 非常感谢...

    先上代码复制粘贴就可以运行了```#_*_coding:utf-8_*_importsysdefadd():returnnum1+num2defsubtract():returnnum1-num2de ...

  7. matlab模拟出现较大误差是什么原因,求助大神,使用BP神经网络预测数据,为什么误差很大?...

    随机产生了25组数据,利用公式求得结果矩阵,现用20组数据训练BP网络,剩下的5组进行预测,产生的结果误差为什么很大,请大神指教,不甚感激 由于金币只有1.5个,所以没办法发求助帖 %测试BP神经网络 ...

  8. 大神cyd的骗分导论

    新 版 骗 分 导 论 THE NEW GUIDE OF CHEATING IN INFORMATICS OLYMPIAD 蒟 蒻 的 宝 书 目录 第1章 绪论 第2章 从无解出发 2.1 无解情况 ...

  9. 串口 发送 接收 高位_电工进阶PLC大神,必备PLC串口通讯的基本知识!

    戳上方蓝字"技成电工课堂"快速关注!!! 电力作业人员在使用PLC的时候会接触到很多的通讯协议以及通讯接口,最基本的PLC串口通讯和基本的通讯接口你都了解吗?1,什么是串口通讯? ...

最新文章

  1. 机器学习:从入门到第一个模型
  2. SQL Server 数据库构架
  3. php之数据类型自动转换
  4. mybatis执行的核心步骤
  5. C#中反射和动态关键字有什么区别?
  6. JavaScript 和 Java 有关系吗?
  7. 电脑屏幕卡住了按什么都没反应_90%的电脑问题都能解决,只要学会这8个字!...
  8. [合作] 钢结构结构健康监测研究与实验
  9. Orcad Library Builder使用教程以及安装踩坑记录
  10. 萤火微信小程序商城(YoShop)PHP程序
  11. 深度置信网络(DBM)
  12. 黑苹果完美升级mac10.13.6,更换内置无线网卡dw1820A
  13. 使用 RSA 算法进行加解密,签名和验签
  14. IE浏览器打不开解决办法
  15. 〖Python 数据库开发实战 - Python与MySQL交互篇⑪〗- 项目实战- 完善新闻管理系统中轮询的交互判断
  16. 计算机老师中专教学论文,中专计算机多元化教学论文
  17. ubuntu linux下的C语言开发(进程创建)
  18. 弘辽科技:淘宝新店提升销量可以吗?怎么提升关键词?
  19. dlib.get_frontal_face_detector()函数
  20. 这家国产FPGA换道超车!强攻5G和AI市场!

热门文章

  1. 移动设备软件开发测试
  2. windows10使用Debug
  3. 【Unity】大世界实现方案
  4. ConvMixer:Patches Are All You Need
  5. 完数什么意思_完美数是什么?
  6. Java入门第116课——向List中插入和删除元素
  7. Java之数组实现增删改
  8. COLA 4.0:应用架构的最佳实践
  9. elasticsearch--拼音转换插件
  10. GOM引擎登陆器自动更新教程(不会的新手看)