题目大意 设有n个互不相同的正整数{X1,X2,...Xn},任取两个Xi,Xj(i≠j),能算出Xi+Xj. 现在所有取法共n*(n-1)/2个和,要你求出X1,X2,...Xn. 输出所有满足条件的方案 3<=n<=300 分析 首先我们假设x1<x2<x3..<xn是没问题的 那么两个数的和中最小的为x1+x2 次小的为x1+x3 现在考虑x2+x3的排名 比x2+x3小的一定是x1+xk 我们枚举x2+x3是哪一个值 可以解出x1,x2,x3 剩下的数中最小的为x1+…
2797: [Poi2012]Squarks Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 211  Solved: 89[Submit][Status][Discuss] Description 设有n个互不相同的正整数{X1,X2,...Xn},任取两个Xi,Xj(i≠j),能算出Xi+Xj.现在所有取法共n*(n-1)/2个和,要你求出X1,X2,...Xn. Input 第一行一个正整数n (3<=n<=300).第二行n*(n-1)/2…
[POI2012]Squarks 题目大意: 设有\(n\)个互不相同的正整数\(\{X_1,X_2,...,X_n\}\),任取两个\(X_i,X_j(i\ne j)\),能算出\(X_i+X_j\). 现在所有取法共\(\frac{n(n-1)}2\)个和,要你求出\(\{X_i\}\)的取值方案数,并求出所有方案的\(X_1,X_2,\ldots,X_n\). 思路: 设\(\{X_i\}\)两两之和构成集合\(A\),将\(A\)和\(X\)从小到大排序,则\(A_1=X_1+X_2,A…
[BZOJ2797][Poi2012]Squarks Description 设有n个互不相同的正整数{X1,X2,...Xn},任取两个Xi,Xj(i≠j),能算出Xi+Xj.现在所有取法共n*(n-1)/2个和,要你求出X1,X2,...Xn. Input 第一行一个正整数n (3<=n<=300).第二行n*(n-1)/2个正整数(每个正整数不超过10^8),表示任取两个Xi,Xj(i≠j)算出的n*(n-1)/2个和. Output 第一行一个正整数k,表示方案数.测试数据保证至少存在…
题目大意 给出一个N个顶点.M条边的无向图,边(u,v)有权值w(u,v),顶点i也有权值p(i), 并且对于每条边(u,v)都满足p(u)+p(v)>=w(u,v). 现在要将顶点i的权值减去z(i),其中0<=z(i)<=p(i). 修改后设顶点i的权值p'(i)=p(i)-z(i),对于每条边(u,v)都满足p'(u)+p'(v)=w(u,v). 求sum{z(i)}的最小值和最大值. 无解输出NIE 分析 可以搞出很多对方程组 \(A+B=C\) \(0\le A \le p_A…
2789: [Poi2012]Letters Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 278  Solved: 185[Submit][Status][Discuss] Description 给出两个长度相同且由大写英文字母组成的字符串A.B,保证A和B中每种字母出现的次数相同. 现在每次可以交换A中相邻两个字符,求最少需要交换多少次可以使得A变成B. Input   第一行一个正整数n (2<=n<=1,000,000),表示字符串的…
...字符串hash. 假如长度x是一个循环节, 那么对于任意n(x | n)也是一个循环节. 设当前询问区间[l, r]长度为len = ∏piai, 最终答案ans = ∏piai' ,我们只需枚举len的质因数来确定ai'即可 #include<bits/stdc++.h> using namespace std; typedef unsigned long long ull; const int maxn = 500009; const ull P = 1000173169; char…
打cf的时候遇到的问题,clairs告诉我这是POI2012 的原题..原谅我菜没写过..于是拐过来写这道题并且学了下string hash.   字符串hash基于Rabin-Karp算法,并且对于各种长度子串的匹配是常数的.具体做法看代码就明白了.然后如果单hash没发过.那就试试双hash把.如果还不行那就三hash以此类推..一般到双hash就基本不会出错.你的hash的mod值要尽量分开和是素数就对了. 这种方法实在是神,当数据过大时才会可能出错2333很适合竞赛. 附加一个类似双ha…
题目大意 bzoj 2795 给出一个由小写英文字母组成的字符串S,再给出q个询问,要求回答S某个子串的最短循环节. 如果字符串B是字符串A的循环节,那么A可以由B重复若干次得到. n<=500,000 , q<=2,000,000 分析 判循环节用hash \(O(q\sqrt n)\)枚举因子? TLE 注意一个特殊的性质 若长度len可为循环节,则若(klen) | n,(klen)也为循环节 不会出现两个循环节长度互质除非1是循环节 由于已知整个串是循环节 于是我们可以枚举质因子判断循…
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1050 题意:给出一个带权图.求一条s到t的路径使得这条路径上最大最小边的比值最小? 思路:将边排序.枚举最小边,然后将边一个一个插到并查集里,s和t联通时计算更新答案. struct node { int u,v,w; void get() { RD(u,v,w); } }; int cmp(node a,node b) { return a.w<b.w; } int n,m,s,t;…