hdu 6327 Random Sequence

HDU DP动态规划 HDU的一题........HDU DP动态规 立即下载

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6327

一个状态压缩的dp,将多种相同的情况缩成很少个有效状态,这样不会t。

预处理出每个状态对应的转移情况,就可以变成二维dp求解

求逆元的问题:当模数为素数时,m的逆元为pow(m,mod-2)

#include<bits/stdc++.h>
#define mod 1000000007
#define For(i,m,n) for(int i=m;i<=n;i++)
#define LL long long
#define lan(a,b) memset(a,b,sizeof(a))
using namespace std;

const int N=105;
LL id[N][N][N];
LL dp[N][2005];
LL to[2005][N],w[2005][N];
LL g[N][N];
LL v[N];
int a[N];
int po(int a,int b){int t=1;for(;b;b>>=1,a=1LL*a*a%mod)if(b&1)t=1LL*t*a%mod;return t;}
int gcd(int a,int b){return b?gcd(b,a%b):a;}

int main()
{
        For(i,1,100)
        For(j,1,100)
        g[i][j]=gcd(i,j);
    int t;
    scanf("%d",&t);
    while(t--)
    {
        lan(a,0);
        lan(id,0);
        lan(to,0);
        lan(w,0);
        lan(v,0);
        int n,m;
        scanf("%d%d",&n,&m);
        For(i,1,n)
            scanf("%lld",&a[i]);
        For(i,1,m)
            scanf("%lld",&v[i]);
        int p=0;
        for(int i=1;i<=m;i++)
            for(int j=i;j<=m;j+=i)
                for(int k=j;k<=m;k+=j)
                    id[i][j][k]=++p;
        for(int i=1;i<=m;i++)
            for(int j=i;j<=m;j+=i)
                for(int k=j;k<=m;k+=j)
                {
                    int x=id[i][j][k];
                    for(int l=1;l<=m;l++)
                    {
                            to[x][l]=id[g[j][l]][g[k][l]][l];
                            w[x][l]=v[g[i][l]];
                    }
                }

        lan(dp,0);
        For(i,1,m)
        For(j,1,m)
        For(k,1,m)
        {
            if(a[1]&&a[1]!=i)continue;
            if(a[2]&&a[2]!=j)continue;
            if(a[3]&&a[3]!=k)continue;
            dp[3][id[g[g[i][j]][k]][g[j][k]][k]]++;
        }
        For(i,4,n)
        For(j,1,p)
        {
            if(!dp[i-1][j])continue;
            For(k,1,m)
            {
                if(a[i]&&k!=a[i])continue;
                int y=to[j][k];
                dp[i][y]=(dp[i][y]+dp[i-1][j]*w[j][k])%mod;
            }
        }
        LL ans=0;
        For(i,1,p)ans=(ans+dp[n][i])%mod;
        For(i,1,n)if(!a[i])ans=(1LL*ans*po(m,mod-2))%mod;
        printf("%lld\n",ans);
    }
    return 0;
}

 

Sylvester结式法求解多项式方程 Sylvester结式法,结式,消元法,ctfshow 七夕杯 LUCK7,crypto,WriteUp 阅读详情

相关推荐

CAN通信:EB中配置CAN驱动,配置参数解析

以S32K314芯片说明,其他芯片不同,参数配置也有差异。

zhangxiaio1的博客 2167

hdu6327(DP+状态优化)

很容易得出暴力DP方程。。 d[i][j][k][v]=d[i-1][k][v][t]*gcd(j,k,v,t)   v=1..m 其中j,k,v,t就是i位前的4个数字。。 显然炸到飞起。。需要优化。。 然后这次是从状态设计上进行优化。。 由于关注的只是gcd(j,k,v,t)所以考虑直接维护gcd(k,v,t),转移的时候发现要维护gcd(k,v,t)需要维护gcd(k,v)进一步需...

qkoqhh 803

tcllib2.0 package - csv

tcl lib 的csv库

shin 859

hdu 6327 - 期望DP+状态优化

题目链接:点击这里   解题思路:令id[i][j][k]表示最后三个数的gcd是i,最后两个数的gcd是j,最后一个数是k的状态值。这样表示的话状态就会被大大的压缩,而且我们的压缩方法也是正确的。因为题目要求的是gcd而不是他的值,所以不管最后三个数是什么,如果他们的i,j,k相同。说明他们的价值就是一样的。这样就可以把一个100*100*100的状态数压缩成大约1500的状态数。那么当p位...

过路人丶的博客 443

《深入浅出强化学习原理入门》学习笔记(三)机器人找金币应用实例

《深入浅出强化学习原理入门》学习笔记(三)MDP应用实例

lxs3213196的博客 3187

openai联合创始人用1000行纯C语言手搓的GPT-2训练代码

不久之前,特斯拉前 AI 总监、OpenAI 联合创始人 Andrej Karpathy 在社交媒体平台 X 上高调宣布,他友好地从 OpenAI 离职,未来将专注于“个人项目”,而后又口口声声说要尝试性地戒掉上网两周,去了 Bhutan(不丹王国)休假。然后就手搓如下代码,我们一起来欣赏.这段代码是一个GPT-2模型的训练实现,包括前向传播、后向传播、参数更新等过程。代码中包含了注释,解释了每个函数和代码块的作用。此外,还有一些辅助函数和结构体,用于数据加载、随机数生成和模型的初始化与释放。这个训练循环还

zhangzhechun的专栏 1212

hdu 6327 I. Random Sequence

题解: 定义dp状态f[N] [gcd(a[i-2],a[i-1],a[i])] [gcd(a[i-1],a[i])] [a[i]]。但是很多状态是没有用到的,实际上对于m=100时后面三维加起来也不会超过2000,a[i]是gcd(a[i-1],a[i])整数倍,gcd(a[i-1],a[i])是gcd(a[i-2],a[i-1],a[i])的整数倍。 状态转移时枚举新的一维,转移方程为: ...

qq_18869763的博客 246

Python爬虫实战:研究Pandas,构建车质网各车型数据采集和分析系统

研究结果表明,通过网络爬虫技术可以有效地获取公开的汽车投诉数据,这些数据经过适当的清洗和处理后,可以揭示出丰富的汽车质量信息。)作为国内专业的汽车质量投诉受理平台,自 2010 年成立以来,已累计接收消费者投诉信息超过 200 万条,这些数据包含了车型、投诉时间、投诉问题、处理状态等多维度信息,具有极高的分析价值。:通过对车质网数据的分析,能够挖掘出有价值的汽车质量信息,为消费者购车提供参考,为汽车厂商改进产品质量和服务提供依据,同时也能为相关监管部门提供数据支持。

ylfhpy的博客 938

【HDU6327】Random Sequence(记忆化搜索)

点此看题面 大致题意: 给你两个序列\(a,v\),其中\(a\)数组由\(0\sim m\)组成。随机用\(1\sim m\)中的一个数替换\(a\)中的\(0\),求\(\sum_{i=1}^{n-3}v_{gcd(a_i,a_{i+1},a_{i+2},a_{i+3})}\)的期望值。 记忆化搜索 考虑记忆化搜索,设\(f_{i,s_0,s_1,s_2}\)表示当前是第\(i\)位,前\(3...

weixin_30263073的博客 234

人像美肤 人体美型 CVPR 2022 ABPN

人像美肤 CVPR 2022 ABPN

jacke121的专栏 841

使用curl命令出现fatal: unable to access ‘https://github.com/nvm-sh/nvm.git/‘: Encountered end of file的解决方案

本文主要介绍了使用curl命令出现fatal: unable to access ‘https://github.com/nvm-sh/nvm.git/’: Encountered end of file的解决方案,希望能对使用curl命令的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 1万+

[HDU 6327]Random Sequence

HDU 6327 题解 #include&lt;bits/stdc++.h&gt; #define LL long long #define ull unsigned long long #define ULL ull #define mp make_pair #define pii pair&lt;int,int&gt; #define piii pair&lt;int, pii &gt; ...

D0zingbear的博客 456

Android CCodec (十七) 硬件解码调用分析-1(基于V4l2)

简单的分析V4L2DecodeComponent和其相关内容,后续针对解码调用单独分析。

给大佬递杯卡布奇诺的博客 6593

HDU6327 Problem I. Random Sequence

补题的时候一开始想了个假算法,我预处理出有4个数字都是空的对答案的贡献anum4,bnum4,3个数字为空,一个数字为i,anum3[i],bnum4[i],然后很膨胀地写到一半发现数字是要连续的,上一个空位确定后会对当前空位确定有可能产生影响。然后就不知道怎么办了,看了claris题解,存储的是f[i][x][y][z]表示到了第i位,z=a[i-1],y=gcd(a[i-1],a[i-2]),...

binarycopycode 503

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

HDU 6327 Random Sequence(动态规划)

题目链接:Random Sequence 题意 有一个长度为 nnn 的序列 a1,a2,⋯,an&nbsp;(0≤ai≤m)a1,a2,⋯,an&nbsp;(0≤ai≤m)a_1,a_2,\cdots,a_n~(0\leq a_i\leq m) 和长度为 mmm 的序列 v1,v2,⋯,vmv1,v2,⋯,vmv_1,v_2,\cdots,v_m,如果 ai=0ai=0a_i=0,则 ...

Dmaxiya 434

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

HDU 6327 Problem I. Random Sequence(dp)

Description 给出一长度为nnn的序列a1,...,ana1,...,ana_1,...,a_n,如果ai=0ai=0a_i=0则aiaia_i等概率取[1,m][1,m][1,m]中任意一个整数,给出权值序列v1,...,vmv1,...,vmv_1,...,v_m,求 ∑i=1n−3v[gcd(ai,ai+1,ai+2,ai+3)]∑i=1n−3v[gcd(ai,ai+1,ai+...

ZSQ 504

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【HDU 6327】 暑期多校day3 Random Sequence (妙妙dp)

题目大意 给定一个正整数序列 a[1..n]a[1..n]a[1..n],每个数在 [1,m][1,m][1, m] 之间,有些数已知,有些数未知。 在未知数在 [1,m][1,m][1, m] 之间随机的情况下,求以下值的期望: ∏i=1n−3v[gcd(ai,ai+1,ai+2,ai+3)]4≤n≤100,1≤m≤100∏i=1n−3v[gcd(ai,ai+1,ai+2,ai+3)]4≤...

yashem66 271

HDU 6327 2018HDU多校赛 第三场 Random Sequence(概率期望dp+数论)

大致题意:给你一个数列,里面的数字要么是0,要么是1~m中的一个数字。你需要随机的把这些0替换成1~m中的任意一个,然后再计算着整个数列的权值。权值定义为,现在问你最后权值的期望。由于这个v数组是输入的,也就是说没有什么性质,所以这个权值的表达式也不能用数论的知识推出什么结论。因此我们考虑暴力的dp。我们令dp[i][j][k][l]表示当前计算到第i位,且a[i]取j,a[i-1]取k,a[i-2]取l时的期望的分子。那么,从这个状态出发,枚举a[i+1]的数值,就看求出着四个数字的gcd,对应转移过去即

alpc_qleonardo 1077

2018 Multi-University Training Contest 3 hdu 6327 Problem I. Random Sequence(dp)

题意 一个数组a,一个数组v,求v[gcd(ai,ai+1,ai+2,ai+3)]的求和,a中会有0,表示可以取1~m,求最后的期望   题解 设 f[i][x][y][z] 表示考虑前 i 个位置,ai = x, gcd(ai, ai-1) = y, gcd(ai, ai-1, ai-2) = z 的期望。枚举 ai+1 的值转移即可,显然合法状态中 y|x, z|y,当 m = 100...

abutoto的博客 280

hdu Random Sequence

这道题是道规律极强的题。。。真佩服在赛场上快速找到规律的人。 d[i]a[i]res[i] 0 1.000000 Case1:0.5000002.0000001.000000 Case2:0.3750002.750000...

weixin_33738578的博客 132

HDU 多校第三场

HDU 4630 No Pain No Game 思路: 考虑从左到右扫描,对于每个数,记录在它之前出现,并且最靠右边的那个它的倍数,用previ表示。考虑当前数i的所有约数x,对于所有r >= i,l 用树状数组或者线段树维护(此题线段树速度巨慢)因为n只有5W,可以预处理好倍数约数关系 #include #include #include #include #inclu

Paradiser 1430

HDU 6327&&18多校训练3I 【DP】

HDU 6327   Problem I. Random Sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others) Total Submission(s): 56    Accepted Submission(s): 13   ...

tystrwor的博客 506

HDU 6327(dp)

Problem I. Random Sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others) Total Submission(s): 392    Accepted Submission(s): 133   Problem Description There ...

wyj_alone_smile的博客 416

HDU-5883-The Best Path【2016青岛网络】【欧拉路】

题目大意: n 个点 m 条无向边的图,找一个欧拉通路/回路使得这个路径所有结点的异或值最大 题目思路:根据欧拉路的性质, 在无向图中, 欧拉通路:两个点度数为奇数,其余点度数为偶数 欧拉回路:所有点度数为偶数 所以分为两种情况讨论: 1.欧拉回路 起点也是终点,所以要遍历哪个点为起点(因为起点多亦或一次,起点不同结果不同) 2.欧拉通路 两个奇数的点已知,肯定为起点和终点。

Linoy 1385

[HDU 6331]Walking Plan

HDU 6331 题解 #include&lt;bits/stdc++.h&gt; #define LL long long #define ull unsigned long long #define ULL ull #define mp make_pair #define pii pair&lt;int,int&gt; #define piii pair&lt;int, pii &gt; ...

D0zingbear的博客 490

HDU6331&&18多校3M Walking Plan 【分块+DP】

Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others) Total Submission(s): 633    Accepted Submission(s): 229   Problem Description There are n interse...

tystrwor的博客 353
上一篇: hdu 6333 莫队,组合数
下一篇: hdu 6357 Hills And Valleys思维
Dale_zero
博客等级 码龄9年 10粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值