[链接]h在这里写链接 [题意]     k是最高级别的分数,最高界别的分数最多只能有x个.     1<=k<=m;     和k相邻的点的分数只能小于k;     n个点的树,问你每个点的分数的安排,方案数%1e9+7 [题解]     设     f[i][j][0];//这棵子树下面有j个最高级别的点,这个点放Top点的方案数     f[i][j][1];//这棵子树下面有j个最高级别的点,这个点放小于等于k-1的点的方案数     f[i][j][2];//这棵子树下面有j个最高级…
[链接]h在这里写链接 [题意] 给你n个数字; 让你在其中找出三个数字i,j,k(i<=j<=k); 使得p*a[i]+q*a[j]+r*a[k]最大; [题解] /*     有一个要求i<=j<=k;     也就是说系数之间的下标是有关系的.     枚举第一个位置的下标i;         则第二个人j         i<=j<n         枚举中间那个人的位置在哪.     求出前i个位置,第一个人能获得的最大值是多少     求出后n-i个位置,第…
[链接]h在这里写链接 [题意] 在这里写题意 [题解] /* Be careful. 二重循环枚举 */ [错的次数] 0 [反思] 在这了写反思 [代码] #include <bits/stdc++.h> using namespace std; int n; string s[110]; int main() { //freopen("F:\\rush.txt", "r", stdin); scanf("%d", &n)…
Description 给你一个树,可以染 \(m\) 个颜色,定义一个特殊颜色 \(k\) , 要求保证整棵树上特殊颜色的个数不超过 \(x\) 个.同时,如果一个节点是特殊颜色,那么它的相邻节点的颜色编号必须全部小于 \(k\).求方案数. Input 第一行 \(n,m\) 代表节点个数和颜色树 下面 \(n~-~1\) 行描述一棵树 最后一行是特殊颜色 \(k\) 和颜色个数 \(x\) Output 输出一行一个整数,代表答案对 \(10^9~+~7\) 取模结果 Hint \(For…
A. Tom Riddle's Diary time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Harry Potter is on a mission to destroy You-Know-Who's Horcruxes. The first Horcrux that he encountered in the Chamber…
Helga Hufflepuff's Cup CodeForces - 855C 题意:给一棵n个节点的树,要给每一个节点一个附加值,附加值可以为1-m中的一个整数.要求只能有最多x个节点有附加值k.如果某个节点的附加值是k,那么与其直接相连的点的附加值都必须小于k.求给整棵树的点赋附加值时满足要求的总方案数. 方法: http://blog.csdn.net/ssimple_y/article/details/78081586 ans[i][j][k]表示以i节点为根的子树上选j个最高值且k满…
855C - Helga Hufflepuff's Cup 题意 要求构建一棵树,树上至多可以存在 \(x\) 个权值为 \(k\) 的重要点,且与重要点连边的点的权值必须小于 \(k\),问有多少种构树方案. 分析 树形DP. 有 \(dp[u][s][cnt]\),表示以 \(u\) 为根结点的子树,重要点的数目为 \(cnt\) 时的方案数,其中 \(s=0\) 表示 \(u\) 的权值小于 \(k\) ,\(s=1\) 表示 \(u\) 的权值等于 \(k\) ,\(s=2\) 表示 \…
C. Helga Hufflepuff's Cup 这个题目我感觉挺难的,想了好久也写了很久,还是没有写出来. dp[i][j][k] 代表以 i 为根的子树中共选择了 j 个特殊颜色,且当前节点 i 的状态为 k 的染色方案数. k=0 ,代表当前节点 i 的颜色值小于 K . k=1,代表当前节点 i 的颜色值等于 K . k=2,代表当前节点 i 的颜色值大于 K . 但是这个dfs过程的处理我觉得很复杂. 我们需要一个数组来进行临时的存储. tmp[i][k] 表示选了 i 个  状态为…
http://codeforces.com/gym/100240 J [分析] 这题我搞了好久才搞出样例的11.76....[期望没学好 然后好不容易弄成分数形式.然后我‘+’没打..[于是爆0... 好桑心.. 对于x^2这样的期望,是不能直接求x的期望然后平方的! 为什么呢?因为意义就是不对的,你的概率有可能乘了两次什么的... 我的方法是: 先把每天分离出来,对于某一天,假设你前i部番的x^2的期望求了出来,然后新的一部翻在这天放的概率是p, 新的答案就是$x^{2}*(1-p)+p*(x…
[链接] 我是链接,点我呀:) [题意] 给你一个a 让你从1..a-1的范围中选择一个b 使得gcd(a^b,a&b)的值最大 [题解] 显然如果a的二进制中有0的话. 那么我们就让选择的b的二进制中对应的位置为1 剩下全为0就好 这样a的二进制全都变成1之后就是答案了(gcd的右边是0). 但是如果a的二进制里面全是1的话. 就没办法这么构造了 这里有两种情况. ①.1的个数是偶数 那么就101010这样构造 另外一个数就是010101 答案就是010101转换成十进制 ②.1的个数是奇数…
[题目链接]:http://codeforces.com/problemset/problem/48/D [题意] 给你n个数字; 然后让你确定,这n个数字是否能由若干个(1..x)的排列连在一起打乱顺序后组成; 如果可以的话,确定每个数字属于哪一个排列; 否则输出-1 [题解] 把各个数字映射到数组上去; 然后如果大的数字的个数大于小的数字的个数的话,无解; 其他情况都能有解; 贪心地构造排列就好; [Number Of WA] 1 [反思] 判断无解的循环的里,上界弄错了; 把数字的范围和数…
[Link]:http://codeforces.com/problemset/problem/117/C [Description] 问你一张图里面有没有一个三元环,有的话就输出. [Solution] O(N2)写个图的遍历就行; 主程序里的for循环,是防止多个连通块. [NumberOf WA] 0 [Reviw] [Code] #include <bits/stdc++.h> using namespace std; #define lson l,m,rt<<1 #def…
The Monster 签到题,算一下b+=a和d+=c,然后卡一下次数就可以了. Not Afraid 只要一组出现一对相反数就是安全的. Berzerk 题意:[1,n],两个人轮流走,谁能走到1谁就赢,求每个人先手在[2,n]时的胜负情况. 一直没怎么写过博弈论的题,但其实这种题也只是一个bfs. 必胜态:有一条边走到必败态 必败态:连出去的所有边都是必胜态. 方法:倒着bfs,把1作为必败态进队,如果当前是必败态,能到达都是必胜态,如果当前是必胜态,能到达的所有的点入度-1,如果入度减到…
[链接] 我是链接,点我呀:) [题意] 你可以把c[i]改成c[i+1]+c[i-1]-c[i] (2<=i<=n-1) 问你能不能把每一个c[i]都换成对应的t[i]; [题解] d[i] = c[i+1]-c[i]; (1<=i<=n-1) change c[i] c[i]' = c[i+1]+c[i-1]-c[i]; d[i-1] = c[i]'-c[i-1]; = c[i+1]+c[i-1]-c[i]-c[i-1] == c[i+1]-c[i] = d[i]; d[i]…
[链接] 我是链接,点我呀:) [题意] x轴上有m个连续的点,从1标号到m. 其中有n个点是特殊点. 让你用k段区间将这n个点覆盖. 要求区间的总长度最小. [题解] 一开始假设我们需要n个胶带(即包含每一个点) 然后因为k<=n 所以可能胶带不够用. 那么就得一个胶带跨过两个点. 怎么选择最好呢? 可以把b[i]-b[i-1]-1处理出来排个序. (优先取较小的花费) 然后取前n-k个累加和sum. 因为每取一个就少用一段胶带. 然后sum+n就是答案了 [代码] import java.i…
[链接] 我是链接,点我呀:) [题意] 给你一个k位数b进制的进制转换. 让你求出来转成10进制之后这个数字是奇数还是偶数 [题解] 模拟一下转换的过程,加乘的时候都记得对2取余就好 [代码] import java.io.*; import java.util.*; public class Main { static int N = (int)1e5; static InputReader in; static PrintWriter out; static int b,k; static…
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 如果我们对某一个位置i操作两次的话. 显然结果就和操作一次一样. 因为第一次操作过后1..i这些数字就变成是互质的了. gcd为1.那么除过之后没有影响的. 然后.就是要明白 那个f(x)函数的意义.其实就是问你x质因数分解之后,其中好的质数和坏的质数的差是多少. 也即有多少个好因数,多少个坏因数. (以下的gcd(i)都指的是a[1..i]这些数字的gcd 然后考虑我们在第i个位置进行了一次操作. 显然他会对后面的数字造成影响…
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 做这题之前先要知道二叉排序树的一个性质. 就是它的中序遍历的结果就是这个数组升序排序. (且每个节点的左边的节点都是比这个节点的值小的,每个节点的右边的节点都是比这个节点的值大的. 则我们把原数组排序. 然后在这里面找到原来数组的a[1]的位置idx; 则1..idx-1这些数字都是a[1]的左子树. idx+1..n这些数字都是a[1]的右子树. 然后idx的左儿子是什么呢? 肯定就是1..idx-1中在原数组中最早出现的数字…
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 题目的图吓人. 找下规律就会发现从内到外是1,6,12,18 即1,16,26,36... 即1+6(1+2+3+...) 等差求和公式. [代码] #include <bits/stdc++.h> #define ll long long using namespace std; ll n; int main() { ios::sync_with_stdio(0),cin.tie(0); #ifdef LOCAL_DEFIN…
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 判断sum/2这个价值能不能得到就可以了. 则就是一个01背包模型了. 判断某个价值能否得到. f[j]表示价值j能否得到. f[0] = 1; 写个01背包就好 [代码] #include <bits/stdc++.h> #define ll long long using namespace std; const int M = 100*200; const int N = 100; int f[M+10],n,a[N+1…
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 排序,逆序.贪心选较大的就好. [代码] #include <bits/stdc++.h> #define ll long long using namespace std; const int M =1e5; int f[M+10],a[1000+10],n,m; int main() { ios::sync_with_stdio(0),cin.tie(0); #ifdef LOCAL_DEFINE freopen(&quo…
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 肯定是放在m-1或者m+1的. (m-1是左边的点都离a最近,而m+1则是右边的点都离他最近. 看看哪个更好就行 [代码] #include <bits/stdc++.h> #define ll long long using namespace std; ll n,m; int main() { ios::sync_with_stdio(0),cin.tie(0); #ifdef LOCAL_DEFINE freopen(&…
[链接]h在这里写链接 [题意] 让你维护一段序列. 这段序列,不会出现连续3个以上的辅音. (或者一块全是辅音则也可以) (用空格可以断开连续次数); 要求空格最小. [题解] 模拟着,别让它出现连续三个辅音就好. 不到万不得已不加空格. 按照这个原则去贪心. [错的次数] 0 [反思] 在这了写反思 [代码] #include <bits/stdc++.h> using namespace std; const int N = 3e3; int n; int a[N+10],is[400]…
Codeforces17A 题意: 有一种素数会等于两个相邻的素数相加 如果在2~n的范围内有至少k个这样的素数,就YES,否则就NO; 思路: 采用直接打表,后面判断一下就好了.那个预处理素数表还是满赞的~~ 不多说,上code-----. #include<bits/stdc++.h> #include<string.h> using namespace std; typedef long long LL; typedef unsigned long long ULL; con…
一.导出到Excel 1.使用DatabaseMetaData分析数据库的数据结构和相关信息. (1)测试得到所有数据库名: private static DataSource ds=DataSourceUtils_C3P0.getDataSource(); Connection conn=ds.getConnection(); DatabaseMetaData dbmd=conn.getMetaData(); ResultSet rs=dbmd.getCatalogs(); while(rs.…
一.dbutils的核心就是回调函数,可以说如果没有回调函数的思想,dbutils是不可能被开发出来的. 对于dbutils中的QuryRunner类,向该类的query方法提供不同的参数,可以得到不同类型的返回值类型,但是该方法并非是重载方法,这里借助回调函数和泛型可以实现和重载方法相同的效果,而且灵活性更高. 二.简单回调函数结构. 1.首先需要一个处理句柄的顶级接口,这是回调规范. interface RunnerHandler<T> { T handler(String str); }…
这题看别人的.就是那么诚实.http://www.cnblogs.com/zhyfzy/p/4117481.html B. Queue During the lunch break all n Berland State University students lined up in the food court. However, it turned out that the food court, too, has a lunch break and it temporarily stopp…
Bear and Big Brother 签到题,直接模拟就可以了. Bear and Friendship Condition 满足只能是每个朋友圈中每个人和其他人都是朋友,这样的边数的确定的. 然后并查集求每个朋友圈大小再判断是否合法就可以啦. #include<cstring> #include<cstdio> #include<cmath> #include<algorithm> #define LL long long #define maxn 3…
A. Anton and Polyhedrons 直接统计+答案就可以了. #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define maxn 1000 #define LL long long using namespace std; ]; int main() { int n; LL sum=; scanf("%d",&n);…
A:https://www.cnblogs.com/myx12345/p/9847588.html B:https://www.cnblogs.com/myx12345/p/9847590.html C:https://www.cnblogs.com/myx12345/p/9850705.html D:https://www.cnblogs.com/myx12345/p/9851785.html E: F:…