牛客挑战赛34 A~E】的更多相关文章

闷声发大财 A O(nmk)dp即可,因为带了1/2的常数+2s所以很稳 #include <algorithm> #include <iostream> #include <cstdlib> #include <cstring> #include <cstdio> #define fo(a,b,c) for (a=b; a<=c; a++) #define fd(a,b,c) for (a=b; a>=c; a--) #define…
链接:https://ac.nowcoder.com/acm/contest/297/C来源:牛客网 题目描述 小w有m条线段,编号为1到m. 用这些线段覆盖数轴上的n个点,编号为1到n. 第i条线段覆盖数轴上的区间是L[i],R[i]. 覆盖的区间可能会有重叠,而且不保证m条线段一定能覆盖所有n个点. 现在小w不小心丢失了一条线段,请问丢失哪条线段,使数轴上没被覆盖到的点的个数尽可能少,请输出丢失的线段的编号和没被覆盖到的点的个数.如果有多条线段符合要求,请输出编号最大线段的编号(编号为1到m…
LINK:牛牛与序列 (牛客div1的E题怎么这么水... 还没D难. 定义一个序列合法 当且仅当存在一个位置i满足 $a_i>a_,a_j<a_$且对于所有的位置i,$1 \leq a_i\leq k$ 人话解释:一个合法序列 每个数字都在1~k之间 且有两个相邻数字是递增关系两个相邻数字是递减关系. 发现我们枚举某两个位置递增递减再进行计数会重复 而且很难减掉重复方案.这个不能代表元容斥. 考虑总方案-不合法方案.发现不合法方案就两种不增,不降. 显然不增翻转一下就是不降 考虑求出不增的方…
题目链接:https://ac.nowcoder.com/acm/contest/375/A 分析:我写的时候竟然把它当成了DP....... 还建了个结构体DP数组,保存一二位,不知道当时脑子在抽啥... 事实上这题四重循环直接暴力就了过....... 在大佬博客里学到了一种只用三重循环的高级做法 看看最后一重循环吧,因为是从后往前的,只有满足第四个条件,就把now+1,等在前面遇到满足第3个条件的数,此时now的数目就是其后满足第四个条件数的个数,直接加到ans上面即可 #include<b…
目录 题目链接 题意 思路 代码 题目链接 传送门 题意 给你一棵树,然后把这棵树复制\(k\)次,然后再添加\(m\)条边,然后给你起点和终点,问你起点到终点的最短路. 思路 由于将树复制\(k\)遍后结点个数高达\(10^{10}\)个,因此不能直接复制跑. 我们注意到\(m\leq 50000\),那么与这\(m\)条边有关的结点最多只有\(2m\)个(记作关键点),那么我们可以考虑把这些点抠出来跑最短路,不同版本之间的点的边由于题目给的\(m\)条边因此不同版本的两结点之间的距离就是\(…
传送门 之前一直咕着的,因为一些特殊的原因把这道题更掉算了-- 有一个对值域莫队+线段树的做法,复杂度\(O(n\sqrt{n} \log n)\)然而牛客机子实在太慢了没有希望(Luogu上精细实现似乎可以过). 考虑对序列进行块大小为\(B=\sqrt{n}\)的分块.对于某一个块来说,如果我们要对这个整块进行询问,那么一次询问一定会保留这\(B\)个数按照值域排序之后的一段区间,其余都变成\(0\).也就是说本质不同的询问只有\(O(B^2)\)种. 如果可以对这\(O(B^2)\)种询问…
小G砍树 dfs两次, dp出每个点作为最后一个点的方案数. #include<bits/stdc++.h> #define LL long long #define fi first #define se second #define mk make_pair #define PLL pair<LL, LL> #define PLI pair<LL, int> #define PII pair<int, int> #define SZ(x) ((int)x…
题面 传送门 题解 很容易写出一个暴力 \[\sum_{i=l}^r {i+n-1\choose n-1}{s-i+m\choose m}\] 即枚举选了多少个步兵,然后用插板法算出方案数 我们对这个换一种角度考虑,可以看做是从\((0,0)\)走到\((s,n+m)\),且必须经过\((l,n),(r,n)\)这条直线的方案数 这个就等价于第\(l\)步向右走时纵坐标在\((0,n-1)\)的方案数减去第\(r+1\)步向右走时在\((0,n-1)\)的方案数 ps:关于第\(p\)步向右走时…
link 题目大意: n个节点的带标号无根树.每次选择一个度数为1的节点并将它从树上移除.问总共有多少种不同的方式能将这棵树删到只剩 1 个点.两种方式不同当且仅当至少有一步被删除的节点不同. 题解: 先考虑1号店最后移除时候的贡献,我们可以钦定1号点为根,并钦定他最后移除 然后就是一个树形dp 设\(f_i\)表示i号点子树移除方案数量,\(size_i\)表示1为根时子树大小 显然有dp式子\(f_x=\frac{(size_x-1)!}{\prod (size_i)!}\prod f_i\…
点此看题面 大致题意: 有\(S\)张无编号的牌,可以将任意张牌锻造成\(n\)种步兵或\(m\)种弩兵中的一种,求最后步兵数量大于等于\(l\)小于等于\(r\)的方案数. 暴力式子 首先我们来考虑暴力式子. 假设我们确定了要选\(x\)个步兵数量,然后要求出此时的方案数. 则我们就要使用隔板法. 仔细思考,其实我们就相当于要求出把\(x\)个步兵分成\(n\)组和把\(S-x\)个步兵分成\(m+1\)组的方案数的乘积.(其中\(m+1\)组指的是\(m\)种弩兵以及不锻造这\(m+1\)种…