![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
区域赛真题
issue是fw
19 years old, struggling in life, chasing daydreams.
展开
-
#1636 : Pangu and Stones(区间dp)
LINK定义f[i][j][k]f[i][j][k]f[i][j][k]表示[i,j][i,j][i,j]合并成了kkk堆的最小代价枚举区间长度,区间左右端点两重循环,枚举kkk一重循环考虑把拼接和合并单独转移拼接的转移方程f[i][j][k]=f[i][q][1]+f[q+1][j][k−1]f[i][j][k]=f[i][q][1]+f[q+1][j][k-1]f[i][j][k]=f[i][q][1]+f[q+1][j][k−1]意思是枚举最左边的那一堆石子,右边就一定有k−1k-1k−1原创 2021-03-18 19:58:07 · 213 阅读 · 0 评论 -
ACM-ICPC 2018 焦作赛区网络预赛 H String and Times(SAM或后缀数组)
LINK后缀自动机的板子题拓扑序计算一下sizesizesize即可如果用后缀数组,就是求一个heightheightheight数组的STSTST表[1,k][1,k][1,k]的所有sa[i]sa[i]sa[i]的lcplcplcp是xxx,那么有xxx个子串都至少出现了kkk次[2,k][2,k][2,k]的所有sa[i]sa[i]sa[i]的lcplcplcp是yyy,如果y<=xy<=xy<=x,对答案显然没有贡献否则,加上y−xy-xy−x即可代码是SAMSAMS原创 2021-03-18 18:58:07 · 238 阅读 · 0 评论 -
HDU 4811 Ball(模拟)
LINK题目大意:有三种颜色的球若干,每次向桌子上放一个球,保证是一条序列,每次放球的得分为当前放入序列的球的前面有多少种不同的颜色a,后面的有多少种不同的颜色b,a+b。问说给定球的数量后,最大得分为多少。做的满了…写了十分钟…一定是需要尽快左边和右边的颜色一样多才好所以我们画一条分割线一次在左边放球aaa,一次在右边放球aaa一次在左边放球bbb,一次在右边放球bbb一次在左边放球ccc,一次在右边放球ccc多出来的球,一直往中间放,每次得分都是666如果有些球不足两个也没关系原创 2021-03-18 15:25:35 · 222 阅读 · 0 评论 -
HDU 4810 Wall Painting(组合数)
LINK比较套路的题吧枚举每一位计算贡献即可把每个数分成这一位有一和这一位没一,组合数算一下就好了#include <bits/stdc++.h>using namespace std;#define int long longconst int maxn = 2e3+10;const int mod = 1e6+3;int n,num[maxn],bit[maxn],a[maxn],c[maxn][maxn];signed main(){ c[0][0] = 1; f原创 2021-03-18 14:42:25 · 208 阅读 · 0 评论 -
HDU 4803 Poor Warehouse Keeper(贪心,精度..)
HDU 4803对于已有状态(x,y)(x,y)(x,y)变到终止状态(a,b)(a,b)(a,b)操作一,状态变成(x+1,y+yx)(x+1,y+\frac{y}{x})(x+1,y+xy),单价不改变操作二,状态变成(x,y+1)(x,y+1)(x,y+1),单价变大因为操作一的执行次数固定是a−1a-1a−1次,所以操作二越早执行越好但是不能一直执行下去,限制条件就是单价,单价一直在增加,但是不能高于最终的单价否则因为单价只增不减的特点,最后得到的yyy会超过b+1b+1b+1这题原创 2021-03-17 21:44:47 · 227 阅读 · 0 评论 -
ZOJ-3735 Alice‘s Print Service(期望dp)
LINK给出一个R∗RR*RR∗R的矩阵aaa其中a[i][j]a[i][j]a[i][j]表示第iii支队伍打败第jjj支队伍的概率你可以随意选择一支队伍,然后开始和mmm支AIAIAI队伍战斗如果你胜利了,你可以和AIAIAI队伍交换队伍属性(交换队伍),也可以不交换游戏开始时你可以选择任意一支队伍作为初始队伍问获胜的最大概率。因为RRR最大是120120120直接定义f[i][j]f[i][j]f[i][j]表示已经打败了前iii支队伍,当前队伍是jjj的最大获胜概率逆推即可,设当原创 2021-03-17 16:49:53 · 192 阅读 · 0 评论 -
HDU 4821 String(字符串hash)
LINK题意给出一个串sss问你存在多少长度为m∗lm*lm∗l的子串使得这个子串切成mmm段长lll的串后,mmm个子串互不相等枚举一下起点发现以111开头的,和以l+1l+1l+1开头的刚好就是首尾不同即可所以我们枚举[1,l][1,l][1,l]开头,然后不断添头去尾即可wsfw,写错几次#include <iostream>#include <map>#include <cstring>using namespace std;type原创 2021-03-17 11:39:20 · 216 阅读 · 0 评论 -
Little Tiger vs. Deep Monkey【cu】(简单dp)
LINKnnn个问题,每个问题有一定的分值小AAA随机选择答案小BBB想知道他至少得多少分,才能保证不输掉比赛的概率大于等于ppp其中n<=40n<=40n<=40定义f[i][j]f[i][j]f[i][j]表示前iii题拿jjj分的概率…直接推就好了,甚至没细节找到一个最小的xxx使得∑i=0xf[n][i]\sum\limits_{i=0}^{x} f[n][i]i=0∑xf[n][i]大于等于ppp即可#include <bits/stdc++.h>原创 2021-03-17 10:51:19 · 257 阅读 · 0 评论