bzoj 1825: [JSOI2010]蔬菜庆典】的更多相关文章

1825: [JSOI2010]蔬菜庆典 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 112  Solved: 45[Submit][Status][Discuss] Description Input Output 对于每组数据,输出一行.若蔬菜的总价能无限制增大,输出"+inf"(不含引号).否则输出一个整数,表示所有蔬菜的最大总价. Sample Input 5 -1 3 1 2 1 1 3 2 3 2 5 -1 3 1 2 1…
Description Input Output 对于每组数据,输出一行.若蔬菜的总价能无限制增大,输出"+inf"(不含引号).否则输出一个整数,表示所有蔬菜的最大总价.   首先如果一个非根的点有多个权值不同的孩子,显然答案为+inf,否则为了便于讨论将原树进行一些转换(代码实现中只是隐式处理): 根的权值不会改变,根的子树间互不影响.可以删去根(并计入答案),对每个原先父亲为根的点,新建一个点作为其父亲,权值与根相同(新建的点不计入答案) 叶子的权值不会改变.如果一个点的所有孩子…
2208: [Jsoi2010]连通数 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/problem.php?id=2208 Description Input 输入数据第一行是图顶点的数量,一个正整数N. 接下来N行,每行N个字符.第i行第j列的1表示顶点i到j有边,0则表示无边. Output 输出一行一个整数,表示该图的连通数. Sample Input 3 010 001 100…
n只有2000,直接DFS就可以过了... -------------------------------------------------------------------------- #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #include<cctype>   #define rep( i, n ) for( int i = 0;…
dp(i,j,k)表示在处理第i个业务, 另外2个在j,k处. 第一维可以滚动... -------------------------------------------------------------------------------- #include<cstdio> #include<cstring> #include<algorithm>   using namespace std;   const int maxn = 209; const int i…
2-sat...假如一个评委喜好的2样中..其中一样没做, 那另一样就一定要做, 这样去建图..然后跑tarjan. 时间复杂度O((n+m)*K) ---------------------------------------------------------------------------- #include<cstdio> #include<cstring> #include<algorithm> #include<stack>   using…
2208: [Jsoi2010]连通数 Time Limit: 20 Sec  Memory Limit: 512 MB Description Input 输入数据第一行是图顶点的数量,一个正整数N. 接下来N行,每行N个字符.第i行第j列的1表示顶点i到j有边,0则表示无边. Output 输出一行一个整数,表示该图的连通数. Sample Input 3 010 001 100 Sample Output 9 HINT 对于100%的数据,N不超过2000. Source Tips: 此题…
Description http://www.lydsy.com/JudgeOnline/upload/Noi2017D2.pdf Solution 网上大部分都是并查集写法,但是有大神写了非并查集写法,特别容易理解 首先 \(s_i\) 的限制,只需将每一个蔬菜分出一个价值为 \(a_i+s_i\) 且过期时间为该蔬菜最晚的一天的蔬菜 把时间倒序之后,问题转化为每个蔬菜会在第几天出现,每天贪心选择价值最大的即可 先求出 \(\max \{p_i \}\) 的答案,然后递推 \([1,\max…
题目链接 因为有删除,考虑倒序处理某个p的询问. 那么每天删除xi的蔬菜就变成了每天运来xi的蔬菜.那么我们取当前最优的即可,早取晚取都一样,不需要留给后面取,还能给后面更优的留出空间. 这样就只需考虑现在了.于是我们能得到p为某个值的答案.多次询问显然需要递推. 而p-1与p相比只是少卖了m的蔬菜.把收益最小的m个删掉即可. 注意堆的插入删除顺序. 复杂度\(O(mqlogn)\). 还有一种求询问p的方法,是直接按蔬菜价值排序,然后每次找到其出现位置往前覆盖.如果某天已卖m则用并查集合并掉.…
noip之前学的内容了,看到题竟然忘了怎么建图了,复习一下. 2-sat 大概是对于每个元素,它有0和1两种选择,必须选一个但不能同时选.这之间又有一些二元关系,比如x&y=1等等... 先把每个点拆成0和1两个点. 那么我们就建图,如果x等于A的话y必须等于B,那么从x的A点向y的B点连一条有向边,表示选了一个点它所有的后继点也必须选. 没有一组合法解的情况当且仅当x的01两个点缩点后在同一个强联通分量里. bzoj 1823 裸题 #include<iostream> #inclu…