【GDSOI 2017】【JZOJ 5104】 逃亡

国标Gb28181里Contact和Route的使用 国标Gb28181是基于Sip协议的,因此对Contact和Route的使用,也可以说是Sip里Contact和Route的使用。Contact和Route则是sip协议里的头字段。 现在,在使用国标Gb28181来做项目时,经常会遇到这种情况,国标的下级是在内网里,上级在公网上。如果不做处理,下级到上级会经过nat协议的转换从而导致上级向下级发送请求时(比如获取目录请求)不能到达 阅读详情

Description

给出一颗根为1的有根树,每个节点有两个值ax,bx,bx表示当前节点的攻击力,如果点y在点x的子树中,切by<bx,则x会向y发起ax次进攻,现在已知每个点的a值,每个点的b值在0~m之间,求全局恰好发生i次进攻的方案数(0<=i<=K)。
n<15,K<=20

solution

显然发现m是没有什么用的,只要记录b的相对大小,最后乘上组合数即可,
试着把每个点按b的大小依次插入,
设DPfi,j,k表示b有i个不同的数,发生了j次进攻,k为压缩的状态,表示哪些点选了,
每次枚举新增哪些点,转移显然,
复杂度:O(nm3n)

试着想优化
先把每个点按照它的dfs序进行重编号,
我原来的方法是每次枚举一堆点同时转移,那么这很显然不是最优的,我们可以把这一堆点一步一步的转移过来,也就是每次只枚举一个点,
但这显然有问题,因为我会误把本来b值与我相同的点视为补我小的,
那么,只要我们消除上面的影响即可,
按深度从小到大枚举(dfs序),每次枚举选这个点,
这样,b值与我相同的点都在我的上方,也就不会对我造成影响,
(当然,在此之前别忘了从i-1转移过来)
这个很难理解,读者可以自己想一下或看下面的标称

复杂度:O(n2m2n)

Code

#include <cstdio>
#include <cstdlib>
#define fo(i,a,b) for(int i=a;i<=b;i++)
#define fod(i,a,b) for(int i=a;i>=b;i--)
#define efo(i,q) for(int i=A[q];i;i=B[i][0])
#define min(q,w) ((q)>(w)?(w):(q))
using namespace std;
const int N=22,M=32770,mo=1e9+7;
typedef long long LL;
int read(int &n)
{
    char ch=' ';int q=0,w=1;
    for(;(ch!='-')&&((ch<'0')||(ch>'9'));ch=getchar());
    if(ch=='-')w=-1,ch=getchar();
    for(;ch>='0' && ch<='9';ch=getchar())q=q*10+ch-48;n=q*w;return n;
}
int m,n,m1;
int B[2*N][2],A[N],B0;
struct qqww
{
    int si,zx;
}a[N];
int b[N],b0;
int zx[N],er[N];
int f[N][N][M],ans;
int ej[16],c[N][M];
LL jcn[N];
LL ksm(LL q,LL w)
{
    LL ans=1;
    while(w)
    {
        if(w&1)ans=ans*q%mo;
        q=q*q%mo;
        w>>=1;
    }
    return ans;
}
LL JC(LL l,int r)
{
    LL ans=1;
    for(;l<=r;l++)ans=ans*l%mo;
    return ans;
}
LL C(int m,int n){return JC(m-n+1,m)*jcn[n]%mo;}
void link(int q,int w)
{
    B[++B0][0]=A[q],A[q]=B0,B[B0][1]=w;
    B[++B0][0]=A[w],A[w]=B0,B[B0][1]=q;
}
int dfs(int q,int fa)
{
    a[q].si=1;a[q].zx=++b0;zx[b0]=q;
    efo(i,q)if(B[i][1]!=fa)a[q].si+=dfs(B[i][1],q);
    return a[q].si;
}
int main()
{
    freopen("escape.in","r",stdin);
    freopen("escape.out","w",stdout);
    int q,w;
    er[1]=1;fo(i,2,16)er[i]=er[i-1]<<1;
    read(n),read(m1),read(m);m1++;
    fo(i,1,n)read(b[i]);
    fo(i,2,n)link(i,read(q));
    dfs(1,0);
    fo(i,1,er[n+1]-1)
    {
        fo(j,1,n)ej[j]=ej[j-1]+((er[j]&i)!=0);
        fo(j,1,n)c[j][i]=(ej[j+a[zx[j]].si-1]-ej[j])*b[zx[j]];
    }
    f[0][0][0]=1;
    fo(I,1,min(n,m1))
        fo(k,1,n)
            fo(i,0,m)
                for(int j=er[k];j<er[n+1];j=((j+1)|er[k]))
                {
                    q=i+c[k][j];
                    if(q<=m)
                    {
                        f[I][q][j]=(f[I][q][j]+f[I-1][i][j-er[k]])%mo;
                        f[I][q][j]=(f[I][q][j]+f[I][i][j-er[k]])%mo;
                    }
                }
    jcn[n]=ksm(JC(1,n),mo-2);
    fod(i,n-1,1)jcn[i]=jcn[i+1]*((LL)i+1)%mo;
    fo(I,0,m)
    {
        ans=0;
        fo(i,1,min(n,m1))ans=(ans+(LL)f[i][I][er[n+1]-1]*C(m1,i)%mo)%mo;
        printf("%lld\n",ans);
    }
    return 0;
}
LLCC68芯片系统架构与LoRa驱动开发核心解析 LoRa射频收发器是低功耗广域物联网(LPWAN)的关键组件,其本质是集成了调制解调器、协议引擎、数据缓冲区与电源管理的专用SoC。理解其工作模式状态机(Sleep/Standby/TX/RX)与SPI主机接口时序规范,是实现稳定通信的基础。LLCC68通过寄存器映射与命令集双接口抽象硬件控制,支持LoRa扩频调制与FSK兼容模式,具备高链路预算(157 dB)和DC-DC/LDO动态电源切换能力。典型应用场景包括远距离传感器节点、智能表计与工业无线监测系统。本文深入剖析LLCC68的信号链路径、中断机制与 阅读详情

相关推荐

基于Simulink的魔术公式轮胎动力学仿真

本篇博文主要用来记录汽车系统动力学课程的学习,仅供课程阶段参考,与实际工程应用还有较大距离。基于Simulink的魔术公式轮胎动力学仿真本实例主要有以下任务。1.建立魔术公式轮胎动力学仿真模型。2.绘制不同载荷下的轮胎纵向力—滑动率关系曲线。3.绘制不同载荷下的轮胎侧向力—侧偏角关系曲线。4.绘制不同载荷下的轮胎回正力矩—侧偏角关系曲线。提示:以下是本篇文章正文内容,下面案例可供参考。

shy_201992的博客 6940

【GDSOI2017】 逃亡

Description 一棵树有N个点,每个点有两个属性a,b,a已知,b未知一个点u,会对它子树内的任意一点v发动a[u]次战争,当且仅当b[u]>b[v]0<=bi<=m,对于j=0~k,求有多少种方案,使得发动的战争次数恰好为j0 < n ≤ 14, k ≤ 20, 0 ≤ m ≤ 100000000, 0 ≤ ai, bi ≤ m Analysis看到这种数据范围很容易想到状压 首先就可以发

LYD729 594

保姆级教程:用R包ggpicrust2搞定PICRUSt2功能预测,从差异分析到热图PCA一键出图

本文提供了一份详细的ggpicrust2使用指南,帮助用户从零开始完成PICRUSt2功能预测数据的差异分析和可视化。通过安装配置、数据导入、差异分析到高级可视化(如热图和PCA)的全流程讲解,即使是初学者也能快速掌握发表级图表的生成技巧。

weixin_33712987的博客 384

大逃亡

【题目描述】: 给出数字N,X,Y,代表有N个敌人分布一个X行Y列的矩阵上,矩形的行号从0到X-1,列号从0到Y-1再给出四个数字x1,y1,x2,y2,代表你要从点(x1,y1)移到(x2,y2)。在移动的过程中你当然希望离敌人的距离的最小值最大化,现在请求出这个值最大可以为多少,以及在这个前提下,你最少要走多少步才可以回到目标点。注意这里距离的定义为两点的曼哈顿距离,即某两个点的坐标分为

蒟蒻的博客 459

小红书UID泄露风险揭秘:如何防止你的手机号被社工库关联(附防护指南)

本文揭示了小红书UID泄露的严重风险,详细解析了UID与手机号关联后被社工库利用的完整链条。通过分析黑产的数据整合技术,提供从基础到进阶的防护策略,包括密码管理、账号隔离和应急响应措施,帮助用户有效防范个人信息泄露风险。

ol789012345的博客 1510

Sciter教程_00_创建HelloWorld工程

本教程记录Sciter工程的创建和编译运行的过程。

qq_36707072的博客 2277

【gdoi2017总结】

第一天第一题正常kmp,对拍过了,常数控制得比较好。第二题dfs序搞一下,题目没读懂,只码了20分,拿到了该有的分。第三题广义sam,不会算法死穴。第四题生成函数,卡特兰数次幂fft,不会公式推导,不会算法死穴。小结出题人丧病,不好好出题面,读题能力差,真的读了好几遍问了评委还是读错了,还是好好学语文吧。高级算法不会,公式推导不会,之前给太多理由自己去放弃一些知识,之后不要放过任何一个出现过的知识点

inklutcuah’s blog 592

从“盲控”到“预见”:聊聊永磁同步电机负载观测器(PMSM Load Observer)如何让控制更丝滑

本文深入探讨了永磁同步电机负载观测器(PMSM Load Observer)如何通过前馈补偿和转动惯量辨识技术实现智能抗扰控制。从传统‘盲控’到预见性调节,负载观测器显著减少转速波动和能耗,提升系统响应速度。文章详细解析了观测器算法架构、工程调参技巧及前沿发展趋势,为电机控制领域提供实用解决方案。

weixin_33737774的博客 406

【GDSOI 2017】【JZOJ 5107】中学生数据结构题

Description给出一棵带权有根树,要求: 1. 树上的路径区间加 2. 树上路径区间查询和 3. 树上路径整体旋转一位(如:原路径上的权值依次是这样的:1,2,3,4,操作完后变成:4,1,2,3)n<=100000n<=100000 时限:2SSolution这显然是链剖套Splay嘛, 旋转就相当于删掉最后一个,加到前面去,听说LCT更简单复杂度:O(nlog(n))O(n\l

777

Rust 与 Golang 深度对决:从语法到应用场景的全方位解析

Rust 定义函数以fn关键字开头,参数需明确指定类型,返回值类型紧跟在箭头->之后。// 定义函数add,接收两个i32类型参数a和b,返回i32类型结果,功能为两数相加a + bRust 和 Golang 各有千秋,在不同领域展现独特优势。Rust 凭借强大的内存安全与高性能,在系统编程、网络编程以及对内存安全和性能要求高的场景中表现突出;Golang 则以简洁语法和出色并发性能,在云计算、分布式系统、Web 开发等领域占据一席之地。

muyouking 1769

一文讲透 SAP SD:把报价、订单、交付、开票串成一条可落地的业务闭环

摘要:SAP SD(销售与分销)模块是企业O2C(订单到收款)流程的核心,管理从客户意向到回款的完整链路。该模块围绕销售订单、交付、开票等关键环节,与财务、物料管理等模块深度集成。SD的核心在于主数据管理、单据驱动流程、定价规则引擎和信用风控,通过条件技术实现复杂定价策略,并支持多维度分析。典型应用场景包括多渠道销售企业的价格体系管理、信用控制和物流协同,有效解决销售与交付脱节、财务对账困难等业务痛点。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 512

GDOI2017再次旅游滚粗记

Preface又是一年GDOI今年,我只定了一个小目标,比方说进个第三天。Text2017.4.28 Day 0一路上非常的堵车,没敢走虎门大桥,一直绕路,开了将近四个小时才到酒店。酒店据说有游泳池?“那Wifi想必不差了”,我对LF如是说。然后。。。我们房间Wifi只有1格,还经常要等到深夜才能下东西。。。 不要随便立Flag啊!今年GDOI在东华中学生态园校区 第一个感觉就是长,非常非常的长

Never give in. 1411

ZeroClaw安装、使用方法详细全解

ZeroClaw 是一个用 Rust 编写的轻量级、高性能、完全自主的 AI 助手运行时框架

洛星核的博客 618

【NOIP 2016 提高组】愤怒的小鸟

DescriptionSolution一题很显然的状压DP, 显然的转移是n3n^3的, 优化: 1. 很显然两个点决定一条抛物线后,可以预处理还能打到那些点。 2. 贪心的想,既然一个点迟早要打,为何不现在就打了它,复杂度:O(2n∗n)O(2^n*n)Code#include <iostream> #include <cstdio> #include <cstdlib> #include

1482

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【JZOJ 3853】帮助Bsny

DescriptionBsny的书架乱成一团了,帮他一下吧! 他的书架上一共有n本书,我们定义混乱值是连续相同高度书本的段数。例如,如果书的高度是30,30,31,31,32,那么混乱值为3;30,32,32,31的混乱值也为3。但是31,32,31,32,31的混乱值为5,这实在是太乱了。 Bsny想尽可能减少混乱值,但他有点累了,所以他决定最多取出k本书,再随意将它们放回到书架上。你能帮助

1335

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【JZOJ 4599】西行妖

Description 在幻想乡白玉楼有一棵终年不开花的樱树叫西行妖,西行寺幽幽子曾经为了让它开花而大量收集春度,然后被城管教训了一顿… 现在,幽幽子得到城管的允许,收集了S点春度,让西行妖重新开花。 西行妖可以被看成是一棵有n个节点的树,每个叶子节点被分配了1点春度就能开花(幽幽子不会无意义地使用她的春度,于是最多只会给同一个叶子节点分配1点春度),对于非叶子节点i,如果它有至少有1个儿子开花,

1140

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【51NOD 1383】整数分解为2的幂

Description任何正整数都能分解成2的幂,给定整数N,求N的此类划分方法的数量!由于方案数量较大,输出Mod 1000000007的结果。 比如N = 7时,共有6种划分方法。7=1+1+1+1+1+1+1 =1+1+1+1+1+2 =1+1+1+2+2 =1+2+2+2 =1+1+1+4 =1+2+4Solution显然,当n为奇数时(除了1),fn=fn−

1031

【JZOJ 3861】【JSOI2014】支线剧情2

DescriptionSolution显然的树形DP, 设gxg_x表示以点x根,一次存档也没有,跑完所有子树的时间, 设fxf_x表示以x的子树全部跑完所需的时间,可以有存档,也可以没有,(包含从根走下来的时间) 有三种情况, 1. 当前点存档,子树没有存档, 2. 当前点存档,子树只有一个存档, 3. 当前点存档,子树有一个存档,其他的点想存档要从根走下来,情况1,3比较好做,先考虑

985

【JZOJ 3052】剪草

Description 有N棵小草,编号0至N-1。奶牛Bessie不喜欢小草,所以Bessie要用剪刀剪草,目标是使得这N棵小草的高度总和不超过H。在第0时刻,第i棵小草的高度是h[i],接下来的每个整数时刻,会依次发生如下三个步骤: 1. 每棵小草都长高了,第i棵小草长高的高度是grow[i]。 2. Bessie选择其中一棵小草并把它剪平,这棵小草高度变为0。注意:这棵小草并没有死掉,它

969

【51NOD 1048】【51NOD 1383】整数分解为2的幂 V2

Description任何正整数都能分解成2的幂,给定整数N,求N的此类划分方法的数量! 比如N = 7时,共有6种划分方法。7=1+1+1+1+1+1+1 =1+1+1+1+1+2 =1+1+1+2+2 =1+2+2+2 =1+1+1+4 =1+2+4Solution设gi,j,kg_{i,j,k}表示一个序列组成2i2^i这个数,这个序列中最大的数为2j2^j,最

912

【JZOJ 4685】礼物

Description 夏川的生日就要到了。作为夏川形式上的男朋友,季堂打算给夏川买一些生日礼物。 商店里一共有种礼物。夏川每得到一种礼物,就会获得相应喜悦值Wi(每种礼物的喜悦值不能重复获得)。 每次,店员会按照一定的概率Pi(或者不拿出礼物),将第i种礼物拿出来。季堂每次都会将店员拿出来的礼物买下来。 众所周知,白毛切开都是黑的。所以季堂希望最后夏川的喜悦值尽可能地高。 求夏川最后最大的喜

908

【Codeforces 678E】Another Sith Tournament &【JZOJ 4648】锦标赛

Description Codeforces The rules of Sith Tournament are well known to everyone. JZOJ 403机房最近决定举行一场锦标赛。锦标赛共有N个人参加,共进行N-1轮。 抽象题意:有n个人要两两对决(n-1)场,已知每两个人对决的胜率,求一安排顺序,使1的最大胜率,输出最大的胜率。 Solution 拿到题就可以得出此题肯定是状态压缩DP,而D

891

【JZOJ 4937】与运算

DescriptionSolution肯定先把所有的数转成二进制, 设一个gig_i表示i这个二进制被多少个数包含,也就是这个数前面可以放多少个数(满足aia_i and i=i), 这样就可以状态压缩DP了, 当前做到了i,枚举在i的基础上减掉一位转移到j,那么转移式为:fj=fi+j∗(gj−gi)f_j=f_i+j*(g_j-g_i)复杂度:O(mlog(m))O(m\log(m))Co

884

【JZOJ 4630】计数

Description 给出n和k,求出n位的k进制数中不包含两个连续的0的数,且没有前导 0的数有几个。如要求7位的十进制数,如1010230算一个,1000198和0011234 不算, Solution 普通DP: fi,0=fi−1,1 fi,1=m∗(fi−1,0+fi−1,1) 转化一下: fi=m∗(fi−1+fi−2) 套上高精度即可。 Code

878

【JZOJ 4816】label

Solution 这道题O(nm)的暴力显然把,只要DP加一个前缀和即可, 打完以后发现,对于每个点,它的f数组开头和结尾是对称的,中间是一样的数。 现在我们来思考一下为什么: 把问题转换一下:如果问题是绝对值<=k,那么很显然,叶子节点全是1, 往上一层,开头的(k-1)个和结尾的(k-1)个有变化,并且对称(显然),中间的依旧相同, 再往上,就有2(k-1

867

【JZOJ 4345】【WC2016模拟】Fountain

DescriptionSolution考虑暴力n!n!枚举顺序,如何快速求答案, 设:sum=∑n−1i=1max(ai,ai+1)sum=\sum_{i=1}^{n-1}\max(a_i,a_{i+1}) 答案显然是Cnm−sum+nC^{n}_{m-sum+n}写出这个式子考虑转成DP: 设:f[i][j][k][l],表示从大到小做到第i个,当前有j个空隙必须放点,sum为k,l为0/1

827
上一篇: 【GDSOI 2017】【JZOJ 5107】中学生数据结构题
下一篇: 【GDOI 2017】【JZOJ 1502】小学生语文题
HOWARLI
博客等级 码龄11年 109粉丝 378原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值