BZOJ4742 : [Usaco2016 Dec]Team Building】的更多相关文章

如果我们将两个人拥有的牛混在一起,并按照战斗力从小到大排序,同时把第一个人选的牛看成$)$,第二个人选的牛看成$($的话,那么我们会发现一个合法的方案对应了一个长度为$2k$的括号序列. 于是DP即可,$f[i][j][k]$表示考虑了前$i$头牛,目前选了$j$个左括号,括号序列的前缀和为$k$的方案数. 时间复杂度$O(nk^2)$. #include<cstdio> #include<algorithm> const int N=2010,M=13,P=1000000009;…
4742: [Usaco2016 Dec]Team Building Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 21  Solved: 16[Submit][Status][Discuss] Description Every year, Farmer John brings his NN cows to compete for "best in show" at the state fair. His arch -rival, F…
CF1316E [Team Building] 状压dp,感觉比D简单 \(f[i][s]\),表示考虑前\(i\)个人,状态为\(s\)(\(s\)的第\(j-1\)个二进制位表示队员的第\(j\)个位置有没有人)的最大价值 考虑如何转移   如果不让第\(i\)个人当队员 如果当前已选为观众的人不足\(k\)个,则一定让它当观众,那么\(f[i][s]\)由\(f[i-1][s]+a_i\)转移来,不过这样做的前提是要先把这\(i\)个人按照他们当观众时的价值排序,从而如果当前观众不到\(k…
To make competitive programmers of BUBT, authority decide to take regular programming contest. To make this contest more competitive and fruitful there are some rules given to balance a team:1. Only 1st , 2nd and 3rd year student can participate. 2.…
1742 最小的是找联通块数 最大的找环 一个环算一个 其它的数各算一个 #include <iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<stdlib.h> #include<vector> using namespace std; #define N 100010 int fa[N],vis[N]; int minz,maxz,d…
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4742 [算法] 动态规划 用Fi,j,k表示约翰的前i头牛和保罗的前j头牛匹配 , 共选了k头 , 有多少种方案 转移详见代码 时间复杂度 : O(N ^ 2K) [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 1010 #define MAXT 12 ; int n , m , t; int a[MA…
23333,在扒了一天题解之后发现我竟然还能秒题,虽然这是个pj的sb题... (排个序,然后upper_bound和lower_bound一用就行了(是不是有O(1)的查询方法啊??貌似要离散啊,一样蛋疼..)) #include <bits/stdc++.h> #define LL long long #define inf 1e60 using namespace std; inline int ra() { ,f=; char ch=getchar(); ; ch=getchar();…
原题链接https://www.lydsy.com/JudgeOnline/problem.php?id=4747 先将原数组排序,然后二分查找即可.时间复杂度\(O((N+Q)logN)\). #include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #define maxn 100010 using namespace std; inline int read(){…
原题链接https://www.lydsy.com/JudgeOnline/problem.php?id=4749 可以对于每个点\(i\),往跟\(i\)距离小于等于\(p[i]\)的点\(j\)都连一条边,表示\(i\)可以传输到\(j\).然后由于图的规模最多\(N^2=40000\),我们可以直接从每个点出发遍历一遍算出可以到达多少点. 建图复杂度\(O(n^2)\),搜索复杂度O(N^3). #include<iostream> #include<cstring> #in…
决定从头到尾干一波BZOJ!可能会写没几题就停下吧,但还是想学学新姿势啦. 1001. [BeiJing2006]狼抓兔子 即求 $(1, 1)$ 到 $(n, m)$ 的最小割.跑 dinic 即可. #include <bits/stdc++.h> using namespace std; inline int read() { , f = ; char ch = getchar(); ; ch = getchar(); } + ch - ; ch = getchar(); } retur…