CF 369 B. Valera and Contest】的更多相关文章

http://codeforces.com/contest/369/problem/B 题意 :n, k, l, r, sall, sk,n代表的是n个人,这n个人的总分是sall,每个人的得分大于 l 小于 r ,其中k个人的分数构成了非递增序列,他们的分数总共为sk,让你求出每个人的分数输出即可,只要输出满足要求的一种即可. 思路 :这个题我是比赛完了才做的,据说很多人当时做的时候就因为错在没有特判0上,还有我做的时候越界了,因为没有考虑到如果k=n的话,n-k=0,这样的话sall%n就不…
http://codeforces.com/contest/369/problem/B 先对k个处理,先处理sk%k个为sk/k+1,如果sk/k==0,k个数都为sk/k:对与剩下的数也按照同样的方法处理,处理完之后就是所要求的序列. #include <cstdio> #include <cstring> #include <algorithm> #define maxn 10000 using namespace std; int n,k,l,r,s1,s2; i…
题目链接:http://codeforces.com/problemset/problem/369/B 题目意思:给出6个整数, n, k, l, r, sall, sk ,需要找出一个满足下列条件的序列:1. l <= 每一个数 <= r   2.整个序列的数的和为sall       3.取得最高分数的那k个人的总分数恰好(注意,是刚刚好,多了或少了都不可,而且这k个人的分数不一定都是相等的)等于sk.(至于后面的那句 if a1, a2, ..... sk = a1 + a2 + ...…
Valera and Elections 题意:现在有n个候选人, 有n-1条路, 如果选择了这个候选人, 这个候选人就会将从自己这个城市到1号城市上所有坏的路都修复一下,现在求最小的候选人数目, 如果答案有多种情况输出任何一种都可以. 输入:x y k 表示x与y之间有一条双向通道, k==1 表示这路是好的, k == 2表示这条路是坏的. 题解: 从1开始dfs搜索, 往外走, 如果遇到坏的城市就标记一下, 然后继续往外走, 如果更远的地方有一个坏的路就用更远地方的城市候选人代替这个标记的…
#include <iostream> #include <algorithm> #include <vector> using namespace std; int main(){ int n,k,l,r,s_n,s_k; cin >> n >> k >> l >> r >> s_n >> s_k; int s_n_k = s_n-s_k; int average_k = s_k/k,left_k…
D,只要抓住每个点只有一个出度,那么图就能分成几个部分,而且可以发现,一个部分最多一个环. #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> using namespace std; #define LL long long const int MAXN = 200005; const int MOD = 1e9 + 7; int nt[MAXN]; i…
题意:[CF 1015F](https://codeforces.com/contest/1015/problem/F) 给你一个模式串A(一个不一定合法的括号序列),让你构造长度为2*n的合法括号序列,问有多少种方案使得含A为其子串.(n<=100) 思路: KMP+DP \(dp[i][j][k][0/1]\)表示当前匹配到了\(a[i]\),\(s[j]\),此时左括号数-右括号数为\(k\),是否含有A的方案数. 然后j->j+1,枚举j+1是'('还是')',然后将其按照KMP匹配a…
比赛链接:http://codeforces.com/contest/369 369C - Valera and Elections: 这是一个树上问题,用深搜,最开始贪心想得是只加叶子节点,找到一个叶子节点且从根1 ——> 叶子节点有problem edges,就把这个点加入,但后来一直WA,才发现时贪错了,找到的这个叶子节点不一定需要,所以要多记录点信息,参考别人的思想,就是标记每个点是不是需要修,如果一个更深的点需要修,则中间的就不需要了. 代码: #include<cstdio>…
CF#196B http://codeforces.com/contest/338/problem/B 题意:在一颗树上,给m个点,求到所有m个点距离不超过d的点的个数,所有路径长度为1. 分析:问题转化,就是求一个点是否到离它最远的给定点的距离小于d, 先第一遍dfs1求出以当前节点u为根的子树到子树中离它最远的给定点的距离d1[u],和次远的距离d2[u], 并且记录下最远距离是从哪个son转移过来的,fo[u]: 第二遍dfs2求出当前节点从它fa出发能碰到给定点的最远距离up[u],那么…
CF#256D:http://codeforces.com/contest/448/problem/D 题意:给你一个n*m的表格,第i行第j列的数据是i*j,然后询问第k小的数,这里的排序是不去重的. 题解:二分,每次判断当前的数是第几大,然后与k进行比较.这里统计这个数是第几大,要for一遍,一开始不知道怎么统计,看了别人的知道自己傻了.这里二分的时候不用判断这个数是否在这个表中,为什么不用,自己要好好体会. #include<iostream> #include<cstdio>…