bzoj4044 [Cerc2014] Virus synthesis】的更多相关文章

回文自动机上dp f[x]表示形成x代表的回文串所需的最小步数, 若len[x]为奇数,f[x]=len[x],因为即使有更优的,也是直接添加,没有复制操作,那样就不用从x转移了. 若len[x]为偶数,f[x]=min(f[fa[x]]+1,len[x]/2-len[fro[x]]+f[fro[x]]+1),因为fa[x]肯定是最后复制更优,那么将复制前的子串末尾加一个字符即可,fro则是len不大于len[x]/2的最长的x的fail. memsetT死了,改成每次只memset用的就过了…
Description Viruses are usually bad for your health. How about fighting them with... other viruses? In  this problem, you need to find out how to synthesize such good viruses.  We have prepared for you a set of strings of the letters A, G, T and C. T…
bzoj4044/luoguP4762 [Cerc2014]Virus synthesis(回文自动机+dp) bzoj Luogu 你要用ATGC四个字母用两种操作拼出给定的串: 1.将其中一个字符放在已有串开头或者结尾. 2.将已有串复制,然后reverse,再接在已有串的头部或者尾部. 一开始已有串为空.求最少操作次数. len<=100000 题解时间 一个非空串经过一次操作2之后一定是一个偶回文串. 所以考虑建出PAM之后dp. 由于只有偶回文串可以通过操作2产生,所以只有偶回文串参与…
洛谷_4762:[CERC2014]Virus synthesis 题目描述: 初始有一个空串,利用下面的操作构造给定串\(S\).\(len(S)\leq10^5\) 1: 串开头或末尾加一个字符. 2: 串开头或末尾添加一个该串的逆串. 输入描述: 给出一个\(T\)表示要处理的字符串的数量. 接下来第\(2\)~\(T+1\)行每行给出一个字符串. 输出描述: 对于每一个字符串,输出一个正整数表示答案. 思路: 回文自动机. 先建立一个回文自动机,然后记\(f(i)\)表示转移到\(i\)…
[CERC2014]Virus synthesis 初始有一个空串,利用下面的操作构造给定串 SS . 1.串开头或末尾加一个字符 2.串开头或末尾加一个该串的逆串 求最小化操作数, \(|S| \le 10^5\) 可以发现最终的答案必然是先构造出一个偶数的回文串,然后再在回文串的两端把剩下的用操作\(1\)补全 而这个偶数长度的回文串可以通过操作\(2\)得到,最终答案就是这个偶数长度的回文串的构造花费加上剩下来的字符的数量 我们构建回文自动机 我们只关心偶数长度回文串的构造花费,假设自动机…
设f[i]为形成极长回文串i的最小操作数.答案为min f[i]+n-len[i]. 在不形成偶回文的情况下形成奇回文的最小操作数为该串长度.可以不考虑(但ans赋为len). 正确性基于: 1)奇.偶回文嵌套形成最终的偶回文一定可以转化为由在不形成奇回文的情况下形成偶回文. 2)奇.偶回文嵌套形成最终的奇回文并不需要讨论. 也不知道理解对没有... 所以,以下的回文串皆代指偶回文. 转移1:f[i]=f[j]+1 | 在极长回文串j前后补上一对相同字符可得到i. 举例: aabbaa : a…
传送门 回文自动机的好题啊 先建一个回文自动机,然后记$dp[i]$表示转移到$i$节点代表的回文串的最少的需要次数 首先肯定2操作越多越好,经过2操作之后的串必定是一个回文串,所以最后的答案肯定是由一个回文串+不断暴力添加得来,那么答案就是$min(ans,dp[i]+n-len[i])$ 然后对于一个串$i$,如果它在前面和后面加上一个字母可以形成回文串$j$,则$dp[j]=dp[i]+1$ 为啥嘞?我们可以假设在形成$i$的之前一步把这个字母加上去,执行2操作后就可以变成$j$了 然后我…
建回文自动机,注意到一个回文串是可以通过一个长度小于等于这个串长度的一半的回文串添上一些字符然后复制得到的,也就是在自动机上向fa走,相当于treedp 每次都走显然会T,记录一个up,指向祖先中最下长度符合要求的回文后缀,这样每次找最多跳一次,所以是O(n)的,还有child的清空动态的做,也就是新建一个点清空一个点 #include<iostream> #include<cstdio> #include<cstring> using namespace std; c…
好难啊..根本不会做..基本上是抄Claris... 题目链接: (bzoj)https://www.lydsy.com/JudgeOnline/problem.php?id=4044 (luogu)https://www.luogu.org/problemnew/show/P4762 题解: 先观察到三个(ju)性(fei)质(hua): 2操作的结果一定是一个回文串(废话), 最后一个2操作之后只能进行1操作(废话), 只进行1操作花费代价等于字符个数(废话) 三句废话连在一起说: 最后一次…
题意 真是道回文自动机好题. 首先考虑答案必定是一个回文串+剩余部分的形式,因此可以建出回文自动机,之后考虑每个长度为偶数的回文串. 对于一个长度为偶数的回文串,设它在回文自动机上对应的节点为\(x\),我们对于每个\(x\)求出\(trans_x\)表示x的最长后缀回文串,满足\(len_{trans_x}\leqslant len_x/2\). 之后设\(f_x\)表示\(x\)拼成\(x\)这个串的最小代价,我们从\(0\)(偶根)出发进行\(bfs\),中途计算\(f_x\). 对于\(…
大意: 初始有一个空串, 操作(1)在开头或末尾添加一个字符. 操作(2)在开头或末尾添加该串的逆串. 求得到串$S$所需最少操作数. 显然最后一定是由某个偶回文通过添加字符得到的, 那么只需要求出所有偶回文的最少操作数即可. 结论: 偶回文最后一次进行翻倍操作一定最优. 证明考虑数学归纳, 对于长为$2$的回文串显然成立. 对长度$>2$的偶回文串$A$, 记最后一次翻倍得到的串$B$, $B$的一半为$C$. 记$f(S)$为串$S$的最优值, 就有$f(B)=f(C)+1$. 考虑由$B$…
4044: [Cerc2014] Virus synthesis Time Limit: 20 Sec  Memory Limit: 128 MB Description Viruses are usually bad for your health. How about fighting them with... other viruses? In  this problem, you need to find out how to synthesize such good viruses. …
Virus synthesis 初始有一个空串,利用下面的操作构造给定串 S . 串开头或末尾加一个字符 串开头或末尾加一个该串的逆串 求最小化操作数, ∣S∣≤105 . 题解 显然应该多使用操作2--翻转复制. 建出 S 的回文自动机,设 dp(i) 表示构造节点 i 表示回文串所需最少操作次数. ans=min {dp(i)+n-leni} 若 i 能转移到 j,则 dp(j)=dp(i)+1.因为 i 是回文串,所以 i 一定是由翻转复制得到的.在这之前一步加上 j 的字符就是这个转移的…
题意 你要用 \(ATGC\) 四个字母用两种操作拼出给定的串: 将其中一个字符放在已有串开头或者结尾 将已有串复制,然后 \(reverse\) ,再接在已有串的头部或者尾部 一开始已有串为空.求最少操作次数. \(len\le100000\) Sol 首先有个结论 每次形成偶数长度回文串的最后一步一定是操作 \(2\) 那么考虑一个 \(DP\) 设 \(f[i]\) 表示形成 \(i\) 表示的字符串需要的最少步数 可以去掉首和尾转移来,可以由它的一个前缀或者后缀转移来 如果是个偶数长度的…
原文链接https://www.cnblogs.com/zhouzhendong/p/CF-100543G.html 题目传送门 - CF-Gym100543G 题意 你可以对一个字符串进行以下两种操作: 1.  在其头或者尾部加入一个新字符 2.  翻转当前字符串,并把他拼接在当前字符串的前面或者后面 给你 T 组询问,每组询问一个字符串,问你至少要多少次操作才能生成这个串. 字符集 = ${'A','C','G','T'}$ ,字符串串长 $\leq 100000$ 题解 第一次写回文自动机…
题目传送门 需要高级权限的传送门 题目大意 要求用两种操作拼出一个长度为$n$的只包含'A','T','G','C'的字符串 在当前字符串头或字符串结尾添加一个字符 将当前字符串复制,将复制的串翻转,接在当前字符串末尾或者当前字符串头部. 问最少的操作次数. 考虑正常的动态规划时怎么做的.用$f[i][j]$表示拼出给定串的$[l, r]$的最少用的步数.转移显然. 然而它的时间爆了.空间也爆了. 仔细观察发现,翻转完最后一个偶回文串后,两端的字符只能暴力插入. 但是一个串的本质不同的回文串的总…
Viruses are usually bad for your health. How about ghting them with... other viruses? In this problem, you need to nd out how to synthesize such good viruses. We have prepared for you a set of strings of the letters A, G, T and C. They correspond to…
题目大意: 你要用ATGC四个字母用两种操作拼出给定的串: 将其中一个字符放在已有串开头或者结尾 将已有串复制,然后reverse,再接在已有串的头部或者尾部 一开始已有串为空.求最少操作次数. len<=100000 题解: 我们一看 ! 这道题跟回文自动机没有半毛钱关系啊 !! 仔细分析一下第二个操作,我们发现这个操作过后实际上就产生了一个大回文串 所以我们可以考虑如何在回文自动机上搞 一开始想歪了,一直倒着想:如何把给定字符串消掉,然后一直没有想出来 其实这道题应该正着想 设\(f_i\)…
题目大意: 你可以在一个串的开头或者末尾加入一个字符,或者把当前整个串$reverse$,然后接在前面或者后面,求达到目标串需要的最少操作次数 对目标串建出$PAM$ 定义$dp[x]$表示当前在回文树的x节点,拼凑出这个节点表示的回文串所需要的最小操作次数 $fa_{x}$表示沿着树边指向它的父亲,$pre_{x}$表示它的$fail$指针 如果它是奇回文串,一定不能被翻转得到,所以开头结尾各需要加上一个字符,$dp[x]=dp[fa_{x}]+2$ 如果它是偶回文串,可以被翻转得到 1.要么…
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem 10983 18765 Y 1036 [ZJOI2008]树的统计Count 5293 13132 Y 1588 [HNOI2002]营业额统计 5056 13607 1001 [BeiJing2006]狼抓兔子 4526 18386 Y 2002 [Hnoi2010]Bounce 弹飞绵羊 43…
想了想 还是要先把字符串的东西先都学完告一段落了再说 时间不多了 加油~. PAM 回文自动机 比SAM简单到不知道哪里去了. 回文自动机和其他自动机一样有字符集 有状态 有转移. 一个字符串的回文自动机的一个最显然的性质是可以识别一个字符串中所有回文子串 这是最有价值的性质. 特点:有两个根 一个代表偶回文串的根 一个代表奇回文串的根 具体的 每个点 同SAM的节点一样都有len fail t[x][c]数组. 可以说 fail指针是所有字符串自动机的精髓吧... 值得一提的是 奇数根的len…
回文树学习博客:lwfcgz    poursoul 边写边更新,大概会把回文树总结在一个博客里吧... 回文树的功能 假设我们有一个串S,S下标从0开始,则回文树能做到如下几点: 1.求串S前缀0~i内本质不同回文串的个数(两个串长度不同或者长度相同且至少有一个字符不同便是本质不同) 2.求串S内每一个本质不同回文串出现的次数 3.求串S内回文串的个数(其实就是1和2结合起来) 4.求以下标i结尾的回文串的个数 每个变量的含义 1.len[i]表示编号为i的节点表示的回文串的长度(一个节点表示…
PAM 目录 PAM 功能: 回文树 Fail指针 Trans指针 构建PAM 应用 P5496[模板]回文自动机(PAM) P4287[SHOI2011]双倍回文 P4555[国家集训队]最长双回文串 P4762[CERC2014]Virus synthesis P1659[国家集训队]拉拉队排练 CF17E Palisection 注意:邻接链表PAM不是使空间变小了,而是用时间换空间 回文自动机 建议先学习AC自动机:AC自动机讲解超详细 回文自动机,顾名思义,用来处理回文串的自动机. 功…
0x00 样本说明 分析样本是被0b500d25f645c0b25532c1e3c9741667的样本感染得到.感染前的文件是Tcpview.exe,一款windows网络连接查看工具. 感染前后文件对比图示如下: 感染前 感染后 文件大小 106496 字节 818688 字节 文件md5 4B6B70F4A199CF3EAC1554B08804BC4F 041D85ECABF5F2E8366C5E0FDCB705F3 文件图标     分析样本的报毒情况如下: 杀软类型 病毒名 nod32…
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1394 1394: Virus Replication Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 135  Solved: 40[Submit][Status][Web Board] Description Input Output Sample Input AAAAA AGCGAA Sample Output 3 HINT Source 分析:…
最近在个只可往他里面发邮件,不能往外上任何互联网的地方工作,用 sublimetext 要装个sublime 插件 jsformat 十分麻烦.用gmail邮箱发总是报病毒. 最后挨个尝试,发现是 jsbeautify 文件夹里的 两个 test 文件夹含有被邮件系统识别为病毒的东西.且在的这家公司我估计和 gmail 的邮箱识别机制相同. 前两天就试了用 qq 邮箱发送,但是qq邮箱并不会拦截和识别为病毒邮件,看来 qq 邮箱还有待提高. Google 了一下未果, Gmail thinks…
StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks  本文将利用 GANs 进行高质量图像生成,分为两个阶段进行,coarse to fine 的过程.据说可以生成 256*256 的高清图像. 基于文本生成对应图像的工作已经有了,比如说 Attribute2Image,以及 最开始的基于文本生成图像的文章等等. Stacked Generated Adver…
Computer Virus on Planet Pandora Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 256000/128000 K (Java/Others)Total Submission(s): 2578    Accepted Submission(s): 713 Problem Description     Aliens on planet Pandora also write computer progra…
Computer Virus on Planet Pandora Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 256000/128000 K (Java/Others) Total Submission(s): 4090    Accepted Submission(s): 1072 Problem Description     Aliens on planet Pandora also write computer prog…
Computer Virus on Planet Pandora Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 256000/128000 K (Java/Others)Total Submission(s): 2975    Accepted Submission(s): 833 Problem Description     Aliens on planet Pandora also write computer progra…