洛谷 P2380 狗哥采矿】的更多相关文章

P2380 狗哥采矿 题目背景 又是一节平静的语文课 狗哥闲来无事,出来了这么一道题 题目描述 一个n*m的矩阵中,每个格子内有两种矿yeyenum和bloggium,并且知道它们在每个格子内的数量是多少.最北边有bloggium的收集站,最西边有 yeyenum 的收集站.现在要你在这些格子上面安装向北或者向西的传送带(每个格子只能装一种).问最多能采到多少矿? 输入输出格式 输入格式: 第一行包含两个整数n,m,( 1 ≤ n ≤ 500, 1 ≤ m ≤ 500).接下来n行m列,表示每个…
题目背景 又是一节平静的语文课 狗哥闲来无事,出来了这么一道题 题目描述 一个n*m的矩阵中,每个格子内有两种矿yeyenum和bloggium,并且知道它们在每个格子内的数量是多少.最北边有bloggium的收集站,最西边有 yeyenum 的收集站.现在要你在这些格子上面安装向北或者向西的传送带(每个格子只能装一种).问最多能采到多少矿? 输入输出格式 输入格式: 第一行包含两个整数n,m,( 1 ≤ n ≤ 500, 1 ≤ m ≤ 500).接下来n行m列,表示每个格子中可以传送到yey…
P2383 狗哥玩木棒 题目背景 狗哥又趁着语文课干些无聊的事了... 题目描述 现给出一些木棒长度,那么狗哥能否用给出的木棒(木棒全用完)组成一个正方形呢? 输入输出格式 输入格式: 输入文件中的第一行是一个整数n表示测试的组数,接下来n行表示每组的测试数据. 每行的第一个数为m(4<=m<=20),接下来m个数ai(1<=ai<=1000)表示木棒的长度. 输出格式: 对于每组测试数据,如果可以组成正方形输出“yes”,否则输出“no”. 输入输出样例 输入样例#1: 3 4…
题目背景 狗哥又趁着语文课干些无聊的事了... 题目描述 现给出一些木棒长度,那么狗哥能否用给出的木棒(木棒全用完)组成一个正方形呢? 输入输出格式 输入格式: 输入文件中的第一行是一个整数n表示测试的组数,接下来n行表示每组的测试数据. 每行的第一个数为m(4<=m<=20),接下来m个数ai(1<=ai<=1000)表示木棒的长度. 输出格式: 对于每组测试数据,如果可以组成正方形输出“yes”,否则输出“no”. 输入输出样例 输入样例#1: 3 4 1 1 1 1 5 10…
描述:https://www.luogu.com.cn/problem/P2380 首先分析一下,易知传送带一定是要么向上,要么向右.且一定摆满了整个矩阵. 所以我们设 f [ i ] [ j ]表示:除了从1,1到 i , j 这个矩形之外的所有地区能获得的最大矿数. 那么从上一个状态到这一个状态,有两种情况: ①从f [ i ] [ j+1 ] 的状态,在1,j+1到i,j+1铺设一条传送带. ②从f [ i+1 ] [ j ] 的状态,在i+1,1到 i+1 , j 铺设一条传送带. 所以…
#include<iostream> #include<algorithm> #include<cstring> ; using namespace std; int n,m; int dp[maxn][maxn]; int a[maxn][maxn]; int b[maxn][maxn]; int sum1[maxn][maxn]; int sum2[maxn][maxn]; int main() { cin>>n>>m; ||n!=) { m…
拿到dp题我们就要想如何推方程 “最北边有bloggium的收集站,最西边有 yeyenum 的收集站.现在要你在这些格子上面安装向北或者向西的传送带(每个格子只能装一种).” 这说明了什么,对于某一个点,是不是只能通过2种方式来获取这个点的值,一个是铺北的传送带,一个是铺西的传送带.然而,如果在这个点铺了传送带的话,说明整一行都会被铺,但由于后来的可以铺不同的传送带来获取该点的值,说明如果在这个点铺的话只会影响这个点的西边的点或北边的点. 综上所述,我们对于仍以一个点,需要考虑以什么形式来铺,…
这是我们团队的一个题目(就是一个_rqy说很好写的题QwQ) 题目背景 @桶哥 这个题目的思路很玄学(性感_rqy在线讲解) 60 Pts 对于前面的六十分,好像很好拿,单纯的打一个模拟 唯一需要注意的地方就是要是想拿全60分,不能是简简单单的n3的枚举,这显然会T 那么问题就来了: 如何才能不T的夺得这三十呢??? 我们发现, 其实y它并无卵用 所以只用枚举x和z就行了(当然需要满足3|x-z) 没错就是这样qwq 100 Pts 这个方法就是用一些操作来维护几个数组 我们发现,y对于价值的贡…
矩阵乘法 + 快速幂优化递推: 看到这个题目我们不难想到递推,题干中说3个连续的A出现在序列中是不合法的,所以可以分为三种情况: (1):序列前只有一个A,如:BA,BBA,BABA. (2):序列前有两个A,如:BAA,BBAA,BABAA. (3):序列前没有A而是B,如:BB,AB,AABAAB. 我们将这三种情况分别用 a1 , a2 , b 表示. // a1:1 1 2 4 7 13 24 44 81 149 274 // a2:0 1 1 2 4 7 13 24 44 81 149…
题目大意:求长度为$n$的$01$串中,没有连续至少$3$个$1$的串的个数 题解:令$a_1$为结尾一个$1$的串个数,$a_2$为结尾两个$1$的串的个数,$b$为结尾是$0$的串的个数.$a_1=b,a_2=a_1,b=a_1+a_2+b$. 卡点:无 C++ Code: #include <cstdio> const int mod = 19260817; int Tim, n; inline void up(int &a, int b) {if ((a += b) >=…