牛客练习赛40 A 小D的剧场 (思维dp)
链接:https://ac.nowcoder.com/acm/contest/369/A
题目描述
——《少女☆歌剧 Revue·Starlight》
题目描述
输入描述:
第一行为两个整数 n, q ,表示序列的长度和有多少和弦小D不喜欢.接下来 q 行,每行三个整数 a, b, c ,表示小D不想出现的和弦
输出描述:
一行一个整数,表示答案
输入
10 10 18 3 3 43 28 22 42 28 3 48 48 4 29 9 31 47 9 22 1 22 49 15 48 29 2 8 27 4 24 34
输出
382785822 题意:给你一个序列长度n,现在每一个位置都有49种方案可以填入,再给出q种不合法的方案 问有多少种可行方案结果对1e9+7取模思路: dp[i][k][l] 表示第i各位置放置 k和l两种音符 我们只需要枚举49^3种情况 对于 j k l 可行的情况 我们就有递推式dp[i][k][l]+=dp[i-1][j][k]其实这么看来问题就没那么复杂了
#include <cstdio> #include <map> #include <iostream> #include<cstring> #include<bits/stdc++.h> #define ll long long int #define M 6 using namespace std; inline ll gcd(ll a,ll b){return b?gcd(b,a%b):a;} inline ll lcm(ll a,ll b){return a/gcd(a,b)*b;} int moth[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int dir[4][2]={1,0 ,0,1 ,-1,0 ,0,-1}; int dirs[8][2]={1,0 ,0,1 ,-1,0 ,0,-1, -1,-1 ,-1,1 ,1,-1 ,1,1}; const int inf=0x3f3f3f3f; const ll mod=1e9+7; int n,q; ll dp[507][57][57]; //dp[i][k][l] 表示第i各位置放置 k和l两种音符 int a[50][50][50]; int main(){ios::sync_with_stdio(false);while(cin>>n>>q){memset(a,0,sizeof(a));for(int i=1;i<=q;i++){int ta,tb,tc;cin>>ta>>tb>>tc;a[ta][tb][tc]=1; a[ta][tc][tb]=1;a[tb][ta][tc]=1; a[tb][tc][ta]=1; //对不可行方案进行标记 a[tc][ta][tb]=1; a[tc][tb][ta]=1;}for(int i=1;i<=2;i++)for(int j=1;j<=49;j++)for(int k=1;k<=49;k++) //初始化 dp[i][j][k]=1;for(int i=3;i<=n;i++)for(int j=1;j<=49;j++)for(int k=1;k<=49;k++)for(int l=1;l<=49;l++){if(a[j][k][l]) continue; dp[i][k][l]=(dp[i][k][l]+dp[i-1][j][k])%mod; //如果是可行方案则 jk的后面就可以是l }ll ans=0;for(int i=1;i<=49;i++)for(int j=1;j<=49;j++){ans=(ans+dp[n][i][j])%mod;}cout<<ans<<endl;} }
转载于:https://www.cnblogs.com/wmj6/p/10386359.html
牛客练习赛40 A 小D的剧场 (思维dp)相关推荐
- 牛客练习赛40 A.小D的剧场
链接:https://ac.nowcoder.com/acm/contest/369/A?&headNav=acm 来源:牛客网 题目描述 "我明白." 作为这命运剧场永远 ...
- 牛客练习赛81 E. 小 Q 与函数求和 1( “简单莫比乌斯反演” ,欧拉函数性质)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 牛客练习赛81 E. 小 Q 与函数求和 1( "简单莫比乌斯反演" ) Prob ...
- 牛客练习赛44 C 小y的质数 (数论,容斥定理)
链接:https://ac.nowcoder.com/acm/contest/634/C 来源:牛客网 题目描述 给出一个区间[L,R],求出[L,R]中孪生质数有多少对. 由于这是一个区间筛质数的模 ...
- 牛客练习赛44 B 小y的线段 (思维)
链接:https://ac.nowcoder.com/acm/contest/634/B 来源:牛客网 题目描述 给出n条线段,第i条线段的长度为a_ia i ,每次可以从第i条线段的j位置跳到第 ...
- 牛客练习赛44 A 小y的序列 (模拟,细节)
链接:https://ac.nowcoder.com/acm/contest/634/A 来源:牛客网 小y的序列 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语 ...
- 牛客练习赛96 C小y的序列
链接:登录-专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 给出长度为nnn的序列a1,a2,...,ana_1,a_2,...,a_na1,a2,...,an及一个数kkk,定义一段 ...
- 牛客练习赛 4 A-Laptop (线段树,思维/GTMD普通前缀和也能求)
链接:https://ac.nowcoder.com/acm/contest/16/A?&headNav=www 来源:牛客网 题目描述 FST是一名可怜的小朋友,他很强,但是经常fst,所以 ...
- 牛客练习赛81 B. 小 Q 与彼岸花(FWT nlogn做法)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Weblink https://ac.nowcoder.com/acm/contest/11171/B ...
- 牛客练习赛10 B栈和排序【思维】
题目描述 给你一个1->n的排列和一个栈,入栈顺序给定 你要在不打乱入栈顺序的情况下,对数组进行从大到小排序 当无法完全排序时,请输出字典序最大的出栈序列 输入描述: 第一行一个数n 第二行n个 ...
- 牛客练习赛 25 E题 定向 【桥 + 思维】 无向图定方向变强连通图
传送门 题意: 给定一个无向图, 然后你要给这幅图每条边加上一个方向, 使得这个图是有向图强连通 思路: 关键在于如何判断无解的情况, 如果能保证当前的图有解, 那么直接dfs一下就可以出答案. 仔细 ...
最新文章
- Python网络编程(4)——异步编程select epoll
- 关于正则表达式匹配任意字符
- oss客户端工具_干货 | 基于Go SDK操作京东云对象存储OSS的入门指南
- ssl提高组周六备考赛【2018.10.27】
- java arraylist 合并_在Java中将两个arrayList合并到一个新的arrayList中,没有重复且没有顺序...
- php变量有三种不同的作用域,PHP中变量类型与转换,变量的检测以及变量的作用域学习--2018年4月13日12时03分...
- 方格取数 (Standard IO)
- 管理对象空间——管理存储参数
- ACM之八数码问题----BFS搜索----数独游戏的模拟(下)
- 光电整纬机(日本世联电子株式会社)
- 编程基本功:找到问题的合理解释,才算解决问题
- 服务器支持vrrp,【交换机在江湖对接案例】配置VRRP备份组对接NLB服务器群集示例(通过物理链路环回方法)...
- 2012第二届GIS制图大赛——公开课技术问题答疑(珍贵资源哦!)
- 高响应比优先调度算法和短作业优先调度算法
- WPA无线密码破解利器EWSA/跑包软件
- retinaface代码讲解_Pytorch-RetinaFace 详解
- 谷歌浏览器不能用_正在用 Chrome 或 Edge 浏览器的你,不能错过这亿个好用插件...
- c#自定义类的指定字段排序
- mongo启动报错:ERROR: child process failed, exited with error number 1
- 数据通信是计算机网络最基本功能,计算机网络最基本的功能是数据通信和()。A.打印文件B.文件调用C.降低成本D.资源共享...
热门文章
- 掌握这些,你也可以是年薪百万的项目经理
- Popsicle攻击事件复盘分析 | 零时科技
- RocketMQ消息消费三:负载均衡
- 在字节做前端一年后,有啥收获~
- 安永与BSN建立合作伙伴关系,提供区块链解决方案
- NLP迁移学习——迁移学习的概念与方法
- ubuntu开启远程访问
- JAVA-无敌神兔-兔子繁衍(斐波那契数列)
- mysql ado.net 连接_ADO.NET 中用于与 MYSQL 数据源建立连接的对象是( )_学小易找答案...
- 《Linux操作系统 - RK3568开发笔记》第2章 固件下载