题目大意 给出一个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…
[BZOJ2801][Poi2012]Minimalist Security Description 给出一个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)}的最小值和最大值. Input…
题目大意 设有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+…
BZOJ_2801_[Poi2012]Minimalist Security_dfs树+特判+乱搞 Description 给出一个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)}的…
一张n个点m条边的无向图,有点权有边权都是非负,且每条边的权值小于等于两个顶点的权值和,现在要将每个点减一个非负整数使得每条边权等于两个顶点的点权和,问最大修改代价和最小修改代价 思路神的一匹,完全想不出来,对着题解想了半天才有点理解 首先有一个小结论:对于一个联通块,如果一个顶点的值确定了,其余顶点的值都能确定.这是显然的,因为直接用一条边的边权减去已知点权就是另一个点的权值.如果我们设一个点的权值为x,与之相连的边权为w,另一点点权即为w-x 这样的话其实整个联通块内所有的点权都可以表示成y…
主要掌握String中的方法 char[] toCharArray()           将此字符串转换为一个新的字符数组. int indexOf(String str)           返回指定子字符串在此字符串中第一次出现处的索引. int lastIndexOf(String str)           返回指定子字符串在此字符串中最右边出现处的索引 集合List和set的区别 List中可以出现重复的元素,Set中不能出现重复的元素 集合遍历: List遍历 Iterator<…
描述 已知w是一个大于10但不大于1000000的无符号整数,若w是n(n≥2)位的整数,则求出w的后n-1位的数.   输入 第一行为M,表示测试数据组数.接下来M行,每行包含一个测试数据. 输出 输出M行,每行为对应行的n-1位数(忽略前缀0).如果除了最高位外,其余位都为0,则输出0. 样例输入 4 1023 5923 923 1000 样例输出 23 923 23 0我的程序: #include<iostream>#include<vector>#include<cm…
题目:(来自光荣之路老师)a+b==valuea+b+c=valuea+b+c+d==valuea+b+c+d+...=valuea和b....取值范围都在0-value写一个方法 传进去列表和预期得value  求出所有变量得取值可能性 一个有顺序得数字序列  从小到大 不限制个数 序列里面随机两个数相加为value得可能性例子[1,2,3,4,5,6,12,19] value为2019+1==20只有一种可能性要求时间复杂度为O(n) 代码: #encoding=utf-8 seq=[1,1…
出处0.0用到第二类斯特林数的性质,做法好像很多,我打的是直接ntt,由第二类斯特林数的容斥公式可以推出,我们可以对于每一个i,来一次ntt求出他与所有j组成的第二类斯特林数的值,这个时候我们是O(n^2logn)的,还不如暴力,但是我们发现,对于刚刚提到的容斥的式子,将其化为卷积形式后,其一边的每一项对于每一个i都相同,另一边的每一项是对于所有的i形成一个n项的等比数列,这样我们可以把成等比数列的一边求和,用固定的一边去卷他们的和,这时候的答案的每一项就是所有的i的这一项的和,然后我们再O(n…
package com.swift; import java.util.Arrays; public class ArrayTest { public static void main(String[] args) { /* * 定义一个int类型的数组,数组中元素为{5,7,3,9,4}. * 求出数组中的最小值,并判断最小值是否为偶数,如果是偶数则输出“最小值为偶数”,如果不是偶数则输出“最小值为奇数”.打印如下 */ int arr[]= {5,7,3,9,4}; Arrays.sort(…