洛谷 P5664 Emiya 家今天的饭(84分)
题目传送门
解题思路:
对于每一个列c,f[i][j][k]表示到第i行,第c列选了j个,其它列一共选了k个,然后我们读题意发现只要j>k,那就一定是不合法的,然后统计所有方案,减去所有不合法方案,即为答案.
代码里有注释.
//只做了84分,懒得写100分(思路一样),以后可能update.....
84分代码:
#include<iostream>
#include<cstdio>
#include<cstring> using namespace std; long long n,m,a[][],sum[],f[][][],p = ,ans = ,cd; int main() {
scanf("%lld%lld",&n,&m);
for(int i = ;i <= n; i++) {
for(int j = ;j <= m; j++){
scanf("%lld",&a[i][j]);
sum[i] += a[i][j] % p;
}
sum[i] %= p;
ans = (ans * (sum[i] + ) % p) % p;//总方案
}
for(int c = ;c <= m; c++) {
memset(f,,sizeof(f));
f[][][] = ;
for(int i = ;i <= n; i++)
for(int j = ;j <= i; j++)
for(int k = ;k <= i - j; k++) {
f[i][j][k] = f[i-][j][k] % p;//不选当前行
if(j > )
f[i][j][k] += a[i][c] * f[i-][j-][k] % p;//选第c列
if(k > )
f[i][j][k] += ((sum[i] - a[i][c]) * f[i-][j][k-]) % p;//不选第c列
f[i][j][k] %= p;
}
for(int j = ;j <= n; j++)
for(int k = ;k <= n - j; k++)
if(j > k)
cd += f[n][j][k];//不合法方案
cd %= p;
}
printf("%lld",(ans - cd - + p) % p);//-1是因为多加了f[0][0][0]的方案,+p是为了防止负数对答案造成影响.
return ;
}
洛谷 P5664 Emiya 家今天的饭(84分)的更多相关文章
- 洛谷P5664 Emiya 家今天的饭 问题分析
首先来看一道我编的题: 安娜写宋词 题目背景 洛谷P5664 Emiya 家今天的饭[民间数据] 的简化版本. 题目描述 安娜准备去参加宋词大赛,她一共掌握 \(n\) 个 词牌名 ,并且她的宋词总共 ...
- 洛谷P5664 Emiya 家今天的饭 题解 动态规划
首先来看一道题题: 安娜写宋词 题目背景 洛谷P5664 Emiya 家今天的饭[民间数据] 的简化版本. 题目描述 安娜准备去参加宋词大赛,她一共掌握 \(n\) 个 词牌名 ,并且她的宋词总共有 ...
- P5664 Emiya 家今天的饭
题面 link 前言 去年把我做自闭的一道题,看了一眼题面,发现只有 t1 有点思路,结果写到一半发现自己读错题了,又只能花时间来重构,结果后面的暴力一点都没写(主要是自己当时不会) 然后,这道题还因 ...
- 【CSP-S 2019】【洛谷P5664】Emiya 家今天的饭【dp】
题目 题目链接:https://www.luogu.org/problem/P5664 Emiya 是个擅长做菜的高中生,他共掌握 \(n\) 种烹饪方法,且会使用 \(m\) 种主要食材做菜.为了方 ...
- 洛谷 P5664 [CSP-S2019] Emiya 家今天的饭
链接: P5664 题意: 给出一个 \(n*m\) 的矩阵 \(a\),选 \(k\) 个格子(\(1\leq k\leq n\)),每行最多选一个,每列最多选\(⌊\dfrac k2⌋\) 个,同 ...
- 洛谷P1422 小玉家的电费
题目描述 夏天到了,各家各户的用电量都增加了许多,相应的电费也交的更多了.小玉家今天收到了一份电费通知单.小玉看到上面写:据闽价电[2006]27号规定,月用电量在150千瓦时及以下部分按每千瓦时0. ...
- 【CSP-S 2019】D2T1 Emiya 家今天的饭
Description 传送门 Solution 算法1 32pts 爆搜,复杂度\(O((m+1)^n)\) 算法2 84pts 裸的dp,复杂度\(O(n^3m)\) 首先有一个显然的性质要知道: ...
- CSP2019 Emiya 家今天的饭 题解
这题在考场上只会O(n^3 m),拿了84分.. 先讲84分,考虑容斥,用总方案减去不合法方案,也就是枚举每一种食材,求用它做超过\(\lfloor \frac{k}{2} \rfloor\) 道菜的 ...
- Emiya 家今天的饭
\(dp_{i,j,k}\)表示前\(i\)种烹饪方法,假设最多的是食材\(j\),食材\(j\)比其他食材多\(k\)次出现 其中\(i \in [1,n],j \in [1,m],k \in [- ...
随机推荐
- install正常,deploy上传jar失败致使打包失败
[INFO] Scanning for projects...[INFO] [INFO] ------------------------------------------------------- ...
- tools.sublime.ConvertToUTF8
sublime乱码,GBK乱码,安装插件ConvertToUTF8 下载ConvertToUTF8,解压,文件夹命名为ConvertToUTF8 sublime->Preferences-> ...
- 移动端 三段式布局 (flex方式)
分享一种平时用的三段式布局(flex) 主要思路是 上中下 header&footer 给高度 main 占其余部分 html 部分 <div class='wrap'> ...
- php 获取时间段
switch ($type){ case 'day'://当日 $end=date(,,,date(,date('Y'))); $where=' and '.$pre.'create_time> ...
- MQ的调用
mq调用(相关dll) using RabbitMQ.Client; using RabbitMQ.Client.Events; using System; using System.Collecti ...
- 使用conda创建虚拟环境
conda创建python虚拟环境 前言 conda常用的命令: conda list 查看安装了哪些包. conda env list 或 conda info -e 查看当前存在哪些虚拟环境 co ...
- window下Apache Jmeter基础用法
1.下载Apache-jmeter-5.1.1.zip 2.解压到一个地方,就可以开始使用了,如果需要在CMD里快速打开,可以设置环境变量. 3.在bin里面,直接打开jmeter.bat. 可以修改 ...
- tornado 获取 路径上的参数
https://www.cnblogs.com/quzq/p/10975766.html class JavaHandler(RequestHandler): #重写RequestHandler中in ...
- 安装部署及升级到Exchange Server 2010
本文档详细的描述了,如何在Windows Server 2008 R2的环境下安装Exchange Server 2010,包括的内容有: 先检查组织环境: 1.请确保林的功能级别至少为 Wind ...
- 19 03 13 关于 scrapy 框架的 对环球网的整体爬取(存储于 mongodb 数据库里)
关于 spinder 在这个框架里面 和不用数据库 相同 # -*- coding: utf-8 -*- import scrapy from yang_guan.items import ...