【CF】7 Beta Round D. Palindrome Degree】的更多相关文章

manacher+dp.其实理解manacher就可以解了,大水题,dp就是dp[i]=dp[i>>1]+1如何满足k-palindrome条件. /* 7D */ #include <iostream> #include <string> #include <map> #include <queue> #include <set> #include <stack> #include <vector> #inc…
读懂题意其实是模板题.就是细节略多. #include<cstdio> #include<cmath> #include<algorithm> using namespace std; #define EPS 0.00000001 struct Point { double x,y; Point(){} Point(const double &X,const double &Y){x=X;y=Y;} double Length() { return sq…
题目:http://blog.csdn.net/winddreams/article/details/44218961 求出每一个点为中心的最长字符串,推断该串是不是从开头的回文串. #include <cstdio> #include <cstring> #include <algorithm> using namespace std ; int p[12000000] , dp[6000000]; char s[12000000] , str[12000000] ;…
[BZOJ1662][Usaco2006 Nov]Round Numbers 圆环数 Description 正如你所知,奶牛们没有手指以至于不能玩"石头剪刀布"来任意地决定例如谁先挤奶的顺序.她们甚至也不能通过仍硬币的方式. 所以她们通过"round number"竞赛的方式.第一头牛选取一个整数,小于20亿.第二头牛也这样选取一个整数.如果这两个数都是 "round numbers",那么第一头牛获胜,否则第二头牛获胜. 如果一个正整数N的二…
title: [概率论]5-8:Beta分布(The Beta Distributions) categories: - Mathematic - Probability keywords: - The Beta Distribution toc: true date: 2018-04-02 15:14:12 Abstract: 本文介绍Beta分布的相关知识内容 Keywords: The Beta Distribution 开篇废话 我们预测未来某件事情是否发生的主要依据是先验知识,于是我相…
[题解]Comet OJ Round 70 简要题解 A 将放在地上的书按照从小到大排序后,问题的本质就变成了合并两个序列使得字典序最小.可以直接模拟归并排序.直接用循环和std::merge实现这个过程.复杂度\(O(n)\) //@winlere #include<cstdio> #include<algorithm> using namespace std; int data[100003],in[100003],data2[100003],ans[100003],cnt,n…
http://codeforces.com/contest/612/problem/D [题解] http://blog.csdn.net/strokess/article/details/52248062 [题意] 在数轴x上,给定n个线段和一个值k,问被这n条线段覆盖了至少k次的区间有多少个,输出每一个. [思路] 扫描线思想.把这n个线段的左右端点放在一起从小到大排序,用cnt记录当前区间被覆盖了多少次,遇到左端点cnt++,遇到右端点cnt--,当cnt==k时记录这时的左端点和右端点.…
我这道题写了整!整!三!天! 我要一定要写这篇博客来表达我复!杂!的!心!情! 题目 LOJ511 官方题解(这个题解似乎不是很详细,我膜 std 才看懂的) 调这道题验证了我校某人的一句话:调题是一个熵减的过程,和 std 越来越像. 分析 由于我写了三天,我也想让你们跟我一样自行去看 std 然后写三天,所以我决定不写这题的题解. 我的思路和题解不完全一样.然而由于上述原因,我最终越写越像 std . 为了方便叙述,假设我们已经在意大利面的帮助下知道了如何在规定某些点必须选,某些点不能选,某…
trunc是截断:round是四舍五入:下面通过一个例子具体看一下trunc和round的不同 SQL),trunc() from dual; TRUNC() TRUNC() --------------- ------------- ---------------- SQL),) from dual; ) ) --------------- ------------- ----------------…
Santa Claus and a Palindrome Time Limit: 20 Sec  Memory Limit: 512 MB Description 有k个串,串长都是n,每个串有一个ai的贡献. 选出若干个串,若它们可以通过任意组合,形成一个回文串,则可以获得它们的贡献之和. 求最大贡献. Input 第一行两个整数k,n. 之后k行,每行分别是一个串si,与贡献ai. Output 一个整数表示答案. Sample Input 7 3 abb 2 aaa -3 bba -1 z…
http://codeforces.com/contest/438/problem/E 题意:询问每个点权值在 $c_1, c_2, ..., c_m$ 中,总权值和为 $s$ 的二叉树个数.请给出每个$s \in [1,S]$ 对应的答案.($S,m < 10^5$) #include <bits/stdc++.h> using namespace std; typedef long long ll; const int N=(1e5+10)*4, mo=998244353; int…
http://codeforces.com/problemset/problem/148/D 题意:w个白b个黑,公主和龙轮流取,公主先取,等概率取到一个.当龙取完后,会等概率跳出一只.(0<=w, b<=1000) #include <bits/stdc++.h> using namespace std; int n, m; const int N=1005; double d[N][N][2]; int main() { scanf("%d%d", &…
这种图论题已经变得简单了... /* D */ #include <iostream> #include <string> #include <map> #include <queue> #include <set> #include <stack> #include <vector> #include <deque> #include <algorithm> #include <cstdio…
挺有意思的一道题目.考虑长度为n的数组,重复n次,可以得到n*n的最长上升子序列.同理,也可以得到n*n的最长下降子序列.因此,把t分成prefix(上升子序列) + cycle(one integer repeating) + sufix(下降子序列).当t<=2*n时,暴力解.注意数据范围. /* 583D */ #include <iostream> #include <string> #include <map> #include <queue>…
误以为是求满足条件的substring总数(解法是KMP分别以Sbeg和Send作为模式串求解满足条件的position,然后O(n^2)或者O(nlgn)求解).后来发现是求set(all valid substring), O(n^2)遍历起始和终止位置并利用set肯定超时.因此,利用字符串hash求解. /* 113B */ #include <iostream> #include <string> #include <map> #include <queu…
题意是给定一棵树.同时,给定如下k个查询: 给出任意两点u,v,对u到v的路径所经过的边进行加计数. k个查询后,分别输出各边的计数之和. 思路利用LCA,对cnt[u]++, cnt[v]++,并对cnt[LCA(u, v)] -= 2.然后dfs求解各边的计数. /* 191C */ #include <iostream> #include <string> #include <map> #include <queue> #include <set…
线段树的简单题目,做一个离散化,O(lgn)可以找到id.RE了一晚上,额,后来找到了原因. /* 555C */ #include <iostream> #include <string> #include <map> #include <queue> #include <set> #include <stack> #include <vector> #include <deque> #include <…
这题目乍眼一看还以为是2-sat.其实很水的,O(n)就解了.枚举每个人,假设其作为凶手.观察是否满足条件.然后再对满足的数目分类讨论,进行求解. /* 156B */ #include <iostream> #include <string> #include <map> #include <queue> #include <set> #include <stack> #include <vector> #include…
这样类似的题目不少,很多都是一堆优化条件求最优解,这个题的策略就是二分+贪心.对时间二分, 对费用采用贪心. /* 377B */ #include <iostream> #include <string> #include <map> #include <queue> #include <set> #include <stack> #include <vector> #include <deque> #inc…
这题目一看很牛逼,其实非常easy.求求最小公倍数,最大公约数,均摊复杂度其实就是O(n). /* 356B */ #include <iostream> #include <string> #include <map> #include <queue> #include <set> #include <stack> #include <vector> #include <deque> #include <…
SPFA.注意状态转移条件,ans的求解需要在bfs中间求解.因为只要到了地点n,则无需等待其他tourist.还是蛮简单的,注意细节. /* 229B */ #include <iostream> #include <string> #include <map> #include <queue> #include <set> #include <stack> #include <vector> #include <…
显然这个图是一课树,看着题目首先联想到LCA(肯定是可以解的).但是看了一下数据大小,应该会TLE.然后,忽然想到一个前面做过的题目,大概是在一定条件下树中某结点旋转成为根后查询最长路径.结果灵感就来了,主要思路是对于每个结点,第一次dfs得到两个变量到P结点的最大值以及次大值.然后,第二次dfs对于当前结点u,u到它的子树中P类结点的最大距离已知(nd[u].mx),那么除u的其他结点v到P类结点的最大距离加上v到u的距离和的最大值为pmx,可以通过每次深搜计算出来,只要d大于等于两者的最大值…
水线段树. /* 380C */ #include <iostream> #include <string> #include <map> #include <queue> #include <set> #include <stack> #include <vector> #include <deque> #include <algorithm> #include <cstdio> #i…
这道题目网上有几个题解,均有问题.其实就是简单的贪心+排序,没必要做的那么复杂.一旦tot+curv > v时,显然curv==2, 有三种可能:(1)取出最小的curv==1的pp,装入当前的p:(2)取出后续最大的curv==1的p,并且装入:(3)当前已经是最优的(即后续不存在curv==1的类型),同时前一个的pp比当前的p更优.(这种情况不需要特判) /* 3B */ #include <iostream> #include <string> #include &l…
还蛮有趣的一道状态DP的题目. /* 435B */ #include <iostream> #include <string> #include <map> #include <queue> #include <set> #include <stack> #include <vector> #include <deque> #include <algorithm> #include <cst…
树形结构,挺有意思的题目.不难. /* 219D */ #include <iostream> #include <string> #include <map> #include <queue> #include <set> #include <stack> #include <vector> #include <deque> #include <algorithm> #include <cs…
思路是树形DP+状态压缩.其实仅有2个状态,奇数次来到x或者偶数次来到x.(因为对x的更新不同).同时开辟visit数组,解决环.注意,一旦遇到环结果就是-1.DP数组存放第奇数/偶数次来到x时,对y的改变两. /* 283B */ #include <iostream> #include <string> #include <map> #include <queue> #include <set> #include <stack>…
枚举t加二分判断当前t是否可行,同时求出s.注意不能说|a[n]| <= |3-a[n]|就证明无解,开始就是wa在这儿了.可以简单想象成每当a[n]赢的时候,两人都打的难解难分(仅多赢一轮):而每当a[n]输的时候,一轮都没赢.在这个前提下,显然存在|a[n]| <= |3-a[n]|. /* 283D */ #include <iostream> #include <string> #include <map> #include <queue>…
题意异常的简单.就是给定一个邻接矩阵,让你判定是否为树.算法1:O(n^3).思路就是找到树边,原理是LCA.判断树边的数目是否为n-1.39-th个数据T了,自己测试2000跑到4s.算法2:O(n^2).思考由图如何得到树,显然MST是可行的.因此,题目变为直接找到MST.然后通过树边构建目标矩阵.判定矩阵是否相等. /* 472D */ #include <iostream> #include <string> #include <map> #include &l…
题目需要求啥很明确了.主要思想是先计算机联通块,然后每个块内找到一个最小值(以及该值的次数).最小值和结果1,次数乘积为结果2.联通块tarjan可解. /* 427C */ #include <iostream> #include <string> #include <map> #include <queue> #include <set> #include <stack> #include <vector> #incl…