AC日记——小M的作物 bzoj 3438】的更多相关文章

3438 思路: 最小割(完全不懂看的题解): s向每个作物连边,s-x ai,x-t bi: 然后s向作物集合连边,cia: 作物集合拆点向t连边,cib: 作物集合第一个点向作物连边INF: 作物向作物集合第二个点连边INF: ans=sum-maxflow: 来,上代码: #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespa…
我由衷地为我的朋友高兴.哈哈,yian,当你nick name破百上千时,再打“蒟蒻”就会被打的. 好的,说正事吧.请注意,这还是题解.但我发现,网络流实在是太套路了(怪不得这两年几乎销声匿迹).我们将分析两道题目,分别代表两类稍微有一点思想意义的题目. 啊啊啊啊啊. 3438: 小M的作物 Description 小M在MC里开辟了两块巨大的耕地A和B(你可以认为容量是无穷),现在,小P有n中作物的种子,每种作物的种子有1个(就是可以种一棵作物)(用1...n编号),现在,第i种作物种植在A中…
小A和uim之大逃离 II 思路: spfa: 代码: #include <bits/stdc++.h> using namespace std; #define INF 0x3f3f3f3f struct NodeType { int x,y,k; NodeType(int x_,int y_,int k_):x(x_),y(y_),k(k_){} NodeType(){} }; ]={,-,,,}; ]={,,,,-}; ][][]; ][]; queue<NodeType>q…
小A的糖果 思路: for循环贪心: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 100005 #define ll long long ll ai[maxn],n,m,ans; inline void in(ll &now) { ; ')Cget=getchar(); ') { now=now*+Cget-'; Cget=getchar(); } } int main() { in(n),in(m);…
小B的询问 思路: 水题: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 50005 #define ll long long int bel[maxn]; struct QueryType { int l,r,id; bool operator <(const QueryType pos)const { if(bel[l]==bel[pos.l]) return r<pos.r; else retur…
题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度. 给出每段小木棍的长度,编程帮他找出原始木棍的最小可能长度. 输入输出格式 输入格式: 输入文件共有二行. 第一行为一个单独的整数N表示砍过以后的小木棍的总数,其中N≤65 (管理员注:要把超过50的长度自觉过滤掉,坑了很多人了!) 第二行为N个用空个隔开的正整数,表示N根小木棍的长度. 输出格式: 输出文件仅一行,表示要求…
Description 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权.其中lastans是上一个询问的答案,初始为0,即第一个询问的u是明文.   Input 第一行两个整数N,M. 第二行有N个整数,其中第i个整数表示点i的权值. 后面N-1行每行两个整数(x,y),表示点x到点y有一条边. 最后M行每行两个整数(u,v,k),表示一组询问.   Output M行,表示每个询问的答案.最后一个询问不输出换…
1010 思路: 斜率优化DP: 跪烂大佬 代码: #include <bits/stdc++.h> using namespace std; #define maxn 50005 #define ll long long ll que[maxn],sum[maxn],dp[maxn],n,l,ai[maxn],a; inline void in(ll &now) { ; ')Cget=getchar(); ') { now=now*+Cget-'; Cget=getchar(); }…
2049 思路: lct模板: 代码: #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define maxn 100005 ],f[maxn],st[maxn]; bool rev[maxn]; inline void in(int &now) { ; ') Cget=getchar(); ') {…
2733 思路: 启发式合并splay(n*log^2n): 来,上代码: #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define maxn 100001 ][],key[maxn*],w[maxn*],opi[maxn*],m; ],root[maxn],id[maxn*],f[maxn],cnt,d…