P2890 [USACO07OPEN]便宜的回文Cheapest Palindrome 时空限制 1000ms / 128MB 题目描述 Keeping track of all the cows can be a tricky task so Farmer John has installed a system to automate it. He has installed on each cow an electronic ID tag that the system will read…
题目链接: 点我 题目分析: 玄学\(dp\) 设\(val[s[i] - 'a' + 1]\)表示字母\(s[i]\)的花费 首先发现对于一个已经回文了的串\(s[i, j]\),在\(s[i - 1]\)的位置上删去和在\(s[j + 1]\)的位置上加上本质上是一样的,所以\(val[s[i] - 'a' + 1]\)直接取增删的最小即可 设\(dp[i][j]\)表示把\(s[i, j]\)变成回文串的最小代价,初始化所有花费为\(INF\),\(dp[i][i] =0\),如果有\(s…
传送门 一道最简单的区间dp,然而我还是抄了题解. //Twenty #include<algorithm> #include<iostream> #include<cstring> #include<cstdlib> #include<cstdio> #include<vector> #include<cmath> #include<queue> #include<ctime> const int…
旅游 题目描述 Ray 乐忠于旅游,这次他来到了T 城.T 城是一个水上城市,一共有 N 个景点,有些景点之间会用一座桥连接.为了方便游客到达每个景点但又为了节约成本,T 城的任意两个景点之间有且只有一条路径.换句话说, T 城中只有N − 1 座桥. Ray 发现,有些桥上可以看到美丽的景色,让人心情愉悦,但有些桥狭窄泥泞,令人烦躁.于是,他给每座桥定义一个愉悦度w,也就是说,Ray 经过这座桥会增加w 的愉悦度,这或许是正的也可能是负的.有时,Ray 看待同一座桥的心情也会发生改变. 现在,…
题目翻译(借鉴自@ 神犇的蒟蒻) [问题描述] 追踪每头奶牛的去向是一件棘手的任务,为此农夫约翰安装了一套自动系统.他在每头牛身 上安装了一个电子身份标签,当奶牛通过扫描器的时候,系统可以读取奶牛的身份信息. 目前,每个身份都是由一个字符串组成的,长度为M (1 ≤ M ≤ 2000),所有的字符都取自N个 小写字母.奶牛们都是顽皮的动物,有时它们会在通过扫描器的时候倒着走,这样一个原来身份为 abcb 的奶牛就可能有两个不同的身份了(abcb 和 bcba),而如果身份是 abcba 的话就不…
点击查看代码 #include<bits/stdc++.h> using namespace std; int data1, data2, ans = 0, sum; int d[13] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int main() { cin >> data1 >> data2; for (int i = 1; i <= 12; i++) { for (int j = 1; j…
传送门 显然求出每一个环的大小. Ans=∏i(siz[i]+1)Ans=\prod_i(siz[i]+1)Ans=∏i​(siz[i]+1) 注意用高精度存答案. 代码: #include<bits/stdc++.h> using namespace std; inline int read(){ int ans=0; char ch=getchar(); while(!isdigit(ch))ch=getchar(); while(isdigit(ch))ans=(ans<<3…
传送门 表示去年考普及组的时候失了智,现在看来并不是很难啊. 直接二分答案然后单调队列优化dp检验就行了. 注意入队和出队的条件. 代码: #include<bits/stdc++.h> #define N 500005 using namespace std; inline int read(){ int ans=0,w=1; char ch=getchar(); while(!isdigit(ch)){if(ch=='-')w=-1;ch=getchar();} while(isdigit…
传送门 看起来普通dp" role="presentation" style="position: relative;">dpdp像是有后效性的样子... 继续分析:如果我们第i+1列的最优值已经处理出来了,那么第i列的最优值就跟第i+1列没有关系了. 因为只要保证第i+1列至少挖到了第i-1行就行,如何保证?从第i+1列的第i-1行开始对第i列转移就行了,注意边界其实这题不难. 主要是要想到要从前一列的状态来推出当前列的状态. 事实上,如果我们用f…
传送门 给出一棵树,树有边权和点权,若选定一个点作为中心,这棵树的代价是所有点权乘上到根的距离的和.求代价最小. 解法:一道明显的换根dp" role="presentation" style="position: relative;">dpdp,如果枚举根的话时间复杂度O(n2)" role="presentation" style="position: relative;">O(n2)O(n…