题意:给定一个2*n的矩阵,每一个点有一个权值,从左上角出发,时间t=0开始,连续的走,将矩阵走完, 每走一步,t++,并且得到t*当前格子的权值的值,求最大的权值和 n<=3e5,1<=a[i][j]<=1e6 思路:合法的构造方案如图 记录几个前缀和,真的不想写这种题 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> typedef lon…
大意: 给定2*n的矩阵, 每个格子有权值, 走到一个格子的贡献为之前走的步数*权值, 每个格子只能走一次, 求走完所有格子最大贡献. 沙茶模拟打了一个小时总算打出来了 #include <iostream> #include <algorithm> #include <cstdio> #include <math.h> #include <set> #include <map> #include <queue> #inc…
题意:给定一个2*n的矩形方格,每个格子有一个权值,从(0,0)开始出发,要求遍历完整个网格(不能重复走一个格子),求最大权值和,(权值和是按照step*w累加,step步数从0开始). 转载: 题解:思维题,如果正向考虑的话很容易把自己绕晕,我们需要反过来想,你会发现其实对于一个2*N的矩阵,你一共只有N个终点(如下图1),如果在认真推敲,你会发现对于这n个终点,从起点到终点的路线都是很有规律的,只有下图2和3两种情况)那么问题就简单了,只需要考虑各种前缀的预处理,之后直接O(n)判断这N个终…
B. Vasya and Wrestling time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Vasya has become interested in wrestling. In wrestling wrestlers use techniques for which they are awarded points by…
题面在这里! 好久没有体会这种A题的快感了23333 一开始看错了,以为权值是从1开始的,不过这样不要紧,最后把算的答案减去两行数的和就是正确的答案了. 然后发现位于一个角上的时候,我们其实只有两种选择,一种是先一直走这一行走到头再返回来走,这样就走完了:另一种是走到这一列的另一行上然后再往右走一列. 第一种可以直接算,第二种dp一下就好啦,两种取一下最优. #include<bits/stdc++.h> #define ll long long using namespace std; co…
题意:给你一个栈里书的编号,每次能捞出栈顶的一本书,每次询问捞出某本编号的书需要捞几次 n<=2e5 思路: #include<cstdio> #include<cstring> #include<string> #include<cmath> #include<iostream> #include<algorithm> #include<map> #include<set> #include<qu…
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 显然在没有一直往右走然后走到头再往上走一格再往左走到头之前. 肯定是一直在蛇形走位.. 这个蛇形走位的答案贡献可以预处理出来.很容易. 然后蛇形走位之后走到最右再掉头的这个过程也能倒推出来. 考虑sum[i]和sum[i+1]的转移就好 显然sum[i]只是多了a[i]和b[i]两个格子. 考虑它们的贡献就好. sum[i]表示从i开始一直走到右,然后再走到左的花费.(且i位置作为t=0 (之后只要把i后面的和乘上之前过的时间e…
题目链接:戳这里 题意:从(1,1)出发,一遍把格子走完,每个格子只能走一次.问怎么走总和最大. 解题思路:画图可知,总共就3种走法的混合. dw: 样例1的走法 up: 样例1反过来的走法 lp: 样例2的走法 两种组合情况: 先lp,后dw或up 我的思路是暴力预处理.把dw,up,lp三种走法先预处理出来,然后再看两种组合情况的拐点在哪,遍历拐点求出最大的值即可.虽然代码很长,但大多数都是重复代码,思路还是很简单的. 附ac代码: 1 #include <cstdio> 2 #inclu…
题目地址 Edu48 A.Death Note 翻译 你有一个无穷页的本子,每一页可以写\(m\)个名字, 你在第\(i\)天要写\(a_i\)个名字,如果这一页恰好写满了,你就会翻页, 问每天的翻页次数. 题解 傻逼题,求个前缀和,然后除\(m\)计算前缀翻页次数,再和前面一天减一下就好. 代码 #include<cstdio> #define ll long long #define MAX 200200 inline int read() { int x=0;bool t=false;c…
A. Death Note 简单模拟,可用\(\%\)和 \(/\)来减少代码量 #include <iostream> #include <cstdio> using namespace std; const int N = 200010; int n, m, a[N], cnt = 0, tot = 0; int main(){ scanf("%d%d", &n, &m); for(int i = 1; i <= n; i++){ sc…