[TJOI 2018]游园会】的更多相关文章

题意:求NOI的合法串... 思路: 首先这个似乎和后缀自动机没关系(话说TJ不考后缀自动机??),其实就是一个\(DP\)套\(DP\),考虑如果不看兑奖串就是一个LCS,当出现时多记一维即可. #include <bits/stdc++.h> using namespace std; const int maxn = 100010; const int mod = 1e9+7; int bit[maxn]; int t[maxn][3]; int dp[21]; int g[21]; in…
「TJOI 2018」游园会 Party 题目描述 小豆参加了 \(NOI\) 的游园会,会场上每完成一个项目就会获得一个奖章,奖章只会是 \(N, O, I\) 的字样. 在会场上他收集到了 \(K\) 个奖章组成的串.兑奖规则是奖章串和兑奖串的最长公共子序列长度为小豆最后奖励的等级. 现在已知兑奖串长度为 \(N\) ,并且在兑奖串上不会出现连续三个奖章为 NOI ,即奖章中不会出现子串 NOI . 现在小豆想知道各个奖励等级会对应多少个不同的合法兑奖串. \(N \leq 1000, K…
「TJOI 2018」教科书般的亵渎 题目描述 小豆喜欢玩游戏,现在他在玩一个游戏遇到这样的场面,每个怪的血量为 \(a_i\) ,且每个怪物血量均不相同, 小豆手里有无限张"亵渎". 亵渎的效果是对所有的怪造成 \(1\) 点伤害,如果有怪死亡,则再次施放该法术.我们认为血量为 \(0\) 的怪物死亡. 小豆使用一张"亵渎"会获得一定的分数,分数计算如下,在使用一张"亵渎"之后,每一个被亵渎造成伤害的怪会产生 \(x^k\) ,其中 \(x\)…
Description 题库链接 给出一张 \(m\) 个点的有向图.问可重最小路径覆盖是否 \(\leq n+1\) .若不,求最多用 \(n+1\) 条路径去覆盖,最大化未覆盖点点权最小值. \(1\leq n\leq 50,1\leq m\leq 500\) Solution \(\text{floyd}\) 传递闭包之后做最小路径覆盖... 若无解,考虑二分未覆盖点点权最小值,将点权小于 \(mid\) 的点加入图中做最小路径覆盖. 写这题其实是打 \(\text{dinic}\) 板子…
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=5338 [算法] 首先对这棵树进行树链剖分 那么我们就将一个树上的问题转化为一个序列上的问题 建立可持久化字典树维护最大异或值即可 时间复杂度 : O(NlogN ^ 2) [代码] #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; typedef u…
[题目链接] 点击打开链接 [算法] 线段树维护区间乘积 [代码] #include<bits/stdc++.h> using namespace std; #define MAXQ 100010 struct SegmentTree { int l,r; long long sum; } Tree[MAXQ<<]; int T,i,q,op,pos; long long p,m; inline void build(int index,int l,int r) { int mid…
http://acm.timus.ru/problem.aspx?space=1&num=2018 真心爱过,怎么能彻底忘掉 题目大意: 长度为n的串,由1和2组成,连续的1不能超过a个,连续的2不能超过b个 dpa[i] 表示长度为i时以a为结尾的串的个数,dpb[i] 类似 求dpa[i]时 需要枚举结尾a的个数就可以了 dpb[i] 类似 #include <iostream> #include <stdio.h> #include <stdlib.h>…
Math.abs(~2018) 某前端群的入门问题长姿势了,一个简单的入门问题却引发了我的思考,深深的体会到自己在学习前端技术的同时忽略遗忘了一些计算机的基础知识. 对于 JS Math对象没什么可说的, Math.abs(x)指的是返回一个数的绝对值,而解题关键在“~2018”,乍一看,这是什么意思,不会是“-2018”符号打错了吧?细思一下才恍然大悟,这是取反操作符,故取相反数得结果为-2018,Math.abs(-2018) 即2018,大功告成!可是,输入进去发现,What!错误!Why…
题目链接: 3170: [Tjoi 2013]松鼠聚会 Time Limit: 10 Sec  Memory Limit: 128 MB Description 有N个小松鼠,它们的家用一个点x,y表示,两个点的距离定义为:点(x,y)和它周围的8个点即上下左右四个点和对角的四个点,距离为1.现在N个松鼠要走到一个松鼠家去,求走过的最短距离. Input 第一行给出数字N,表示有多少只小松鼠.0<=N<=10^5下面N行,每行给出x,y表示其家的坐标.-10^9<=x,y<=10^…
3170: [Tjoi 2013]松鼠聚会 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 531  Solved: 249[Submit][Status] Description 有N个小松鼠,它们的家用一个点x,y表示,两个点的距离定义为:点(x,y)和它周围的8个点即上下左右四个点和对角的四个点,距离为1.现在N个松鼠要走到一个松鼠家去,求走过的最短距离. Input 第一行给出数字N,表示有多少只小松鼠.0<=N<=10^5 下面N行,每…