Live2d Test Env

随笔分类 -  OJ--牛客

摘要:牛客G: 给定大小为N的数组a[],给定M组关系,让你重排a[],使得sum{M队关系的绝对值之差}最小。首先将a排序,然后依次把a填入数组。 假设i在二进制下有x个1,用dp[i]更新dp[i|(1<<j)],表示的是,将a[x+1]填在第j个位置。注意到a[]已经排序了,那么a[x]的贡献就是: 阅读全文
posted @ 2019-10-09 14:56 nimphy 阅读(256) 评论(0) 推荐(0) 编辑
摘要:题意:有N个不同的商品,每个商品原价是Pi元,如果选择打折,可以减少Di元。 现在加一种规则,每个商品有一个友好商品Fai,如果i用原价买,则可以免费买Fai。 现在问买到所有物品的最小价格。 思路:显然是一个内向树基环。 先把悬在环上的树都求出DP[][],然后再在链上同理跑一遍DP。 我们先看树 阅读全文
posted @ 2019-09-06 16:34 nimphy 阅读(322) 评论(0) 推荐(0) 编辑
摘要:题意:给定数组,求所有异或起来为0的集和的大小之和。 思路:由于是集合大小,我们换成考虑每个元素在多少个集合里有贡献。 先生成线性基。 对于没有插入线性基的元素x,贡献是2^(N-base-1),因为x选择之后,其他非基元素无论选还是不选,都可以调整基来使得异或和为0。 对于插入线性基的元素x,我们 阅读全文
posted @ 2019-09-05 09:39 nimphy 阅读(254) 评论(0) 推荐(0) 编辑
摘要:题意:有N个宿舍(N<200),给出第一年每个宿舍有哪4个同学。现在给出N个4元组y[][4],表示这4个人想住一起,问最少多少人需要换宿舍。 思路:费用流,每个4元组y[]到每个宿舍连边,流量是1,费用是4-same。 阅读全文
posted @ 2019-09-04 16:52 nimphy 阅读(301) 评论(0) 推荐(0) 编辑
摘要:题意:给定N*M的矩阵,'*'表示可以通过,'#'表示不能通过,现在要找两条路径从[1,1]到[N,M]去,使得除了起点终点,没有交点。 思路:没有思路,就是裸题。 Lindström–Gessel–Viennot lemma a到b,c到d,两条路径完全没有交点的方案数=w[a,b]*w[c,d] 阅读全文
posted @ 2019-09-03 20:37 nimphy 阅读(233) 评论(0) 推荐(0) 编辑
摘要:题意:给定N个数a[],现在用a形成一个新的数组b[],1<=b[i]<=a[i]。 问所有的方案的最大值之和。 思路:先排序。然后分段统计贡献,假设a[i-1]<a[i],那么[a[i-1]+1,a[i]]的贡献就是左边的所有方案*右边的合法方案,合法即是最大值这个区间内。 假设max=x,那么右 阅读全文
posted @ 2019-09-03 20:02 nimphy 阅读(247) 评论(0) 推荐(0) 编辑
摘要:题意:A班有N个人,B班有M个人,现在要组成一个新的班级C班,为了公平,从AB班各抽相同人数的人。 现在求所有方案中,人数之和是多少。 思路:即求Σ k*C(N,k)*C(M,k); 先忽略这个外层的k,看看两个组合数乘积的和怎么求。 显然Σ C(N,k)*C(M,k)=C(N+M,N); 因为C( 阅读全文
posted @ 2019-08-29 15:02 nimphy 阅读(298) 评论(0) 推荐(0) 编辑
摘要:今天是被打爆的一天,T3就是用正解做的,但是好像zz了,只得了30分。 T1由于没判不合法的情况,也只有15分 果然是一个拿不到noip一等奖的人 毕竟noip都准备改名了? A:破碎的矩阵。 题意:给出N,M,表示有N*M的矩阵,然后给定每一行的异或和,每一列的异或和,求方案数。 思路:如果合法, 阅读全文
posted @ 2019-08-21 18:04 nimphy 阅读(284) 评论(0) 推荐(0) 编辑
摘要:A:hash 或者 map 或者trie。 #include<bits/stdc++.h> #define rep(i,a,b) for(int i=a;i<=b;i++) using namespace std; const int maxn=200010; map<vector<char>,in 阅读全文
posted @ 2019-08-20 16:49 nimphy 阅读(242) 评论(0) 推荐(0) 编辑
摘要:A思路:排个序建立最短路树即可,可以双指针实现。 考察:贪心,构造。 B:显然最大值取决于a[],出现的最高位不同的那一位,假设有最高位的分到A组,不然分到B组,分组后,各取一个x,y,那么ans=min(x^y),这个可以字典树实现。 比较常规。 但是比赛的时候我以为字典树空间不够只能得80分。所 阅读全文
posted @ 2019-08-19 13:29 nimphy 阅读(292) 评论(0) 推荐(0) 编辑
摘要:题意:给定p=1e9+7,A,B。 求一对X,Y,满足(X+Y)%P=A; 且(X*Y)%P=B; 思路:即,X^2-BX+CΞ0; 那么X=[B+-sqrt(B^2-4C)]/2; 全部部分都要在modP意义下,所以求一个x满足x^2%p=B^2-4C,这个用二次剩余求即可。 套了模板。 阅读全文
posted @ 2019-08-15 23:23 nimphy 阅读(379) 评论(0) 推荐(0) 编辑
摘要:题意:给定N,M,然后给出M组信息(u,v,l,r),表示u到v有[l,r]范围的通行证有效。问有多少种通行证可以使得1和N连通。 思路:和bzoj魔法森林有点像,LCT维护最小生成树。 开始和队友在想维护连通性,而不是维护树,这样好像会很麻烦。 队友yy了一个算法:用线段树模拟并查集维护连通性。( 阅读全文
posted @ 2019-08-10 16:41 nimphy 阅读(674) 评论(1) 推荐(0) 编辑
摘要:题意:给出N*M的01矩阵,求矩阵个数,满足矩阵内全是‘1’,,而且被至少一个’0‘围住。(假设边界外是‘0’。(N,M<3000) 思路:这类问题,一般解决就是两个方向: A:压缩一维,即枚举上下边界,然后复杂度O(N^3); B:广告牌问题,即枚举下边界s,那么久可以看成s为底的一些高楼,再高楼 阅读全文
posted @ 2019-08-10 16:31 nimphy 阅读(394) 评论(0) 推荐(0) 编辑
摘要:题意:给定无向图,Alice在A集合选一个点,Bob在B集合选一个点,CXK在全集里选择一个点。 然后问“三人到某一点集合打篮球的最小距离”的期望。 思路:做过一个裸题,就是给定三人位置,问去哪里集合距离代价最小。 那题就是三个点跑三次SPFA,就可以更新答案了。而此题有一个Cxk,非常的头疼,然而 阅读全文
posted @ 2019-08-06 00:44 nimphy 阅读(400) 评论(0) 推荐(0) 编辑
摘要:题意:给定字符串Str,求出回文串集合为S,问S中的(a,b)满足a是b的子串的对数。 思路:开始和题解的思路差不多,维护当前后缀的每个串的最后出现位置,但是不知道怎么套“最小回文分割”,所以想到了树剖,但是树剖不好同时维护“最后出现的次数”,“查询左端点>=L”的位置数。 所以GG。 那么从图论的 阅读全文
posted @ 2019-08-05 23:11 nimphy 阅读(333) 评论(0) 推荐(0) 编辑
摘要:题意:给定x0,x1,a,b,满足xi=a*xi-1+b*xi-2; 求xn,n<10^(10^6); 思路:10进制快速幂裸题。降幂来写好像也是可以的,但是循环节不是phi(mod),所以数学不好就还是用10进制快速幂吧。 10进制快速幂:复杂度O(n*log10*K^3); 复杂度也不低,所以要 阅读全文
posted @ 2019-08-02 12:03 nimphy 阅读(389) 评论(0) 推荐(0) 编辑
摘要:题目描述 给你一个长为n的序列a和一个常数k 有m次询问,每次查询一个区间[l,r]内所有数最少分成多少个连续段,使得每段的和都 <= k 如果这一次查询无解,输出"Chtholly" 输入描述: 第一行三个数n,m,k第二行n个数表示这个序列a之后m行,每行给出两个数l r表示一次询问 输出描述: 阅读全文
posted @ 2019-05-06 17:28 nimphy 阅读(581) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示