关闭
当前搜索:

bzoj 1827: [Usaco2010 Mar]gather 奶牛大集会

→题目链接← 【想说的话】 没有什么想说的=.= 周末没什么事不刷题感觉不太好 【题解】 两遍dfs(树形dp) 将点1当作根 第一遍dfs计算出每个点子节点总数,还有将它作为集会地点时它的子树中的点满足条件需要的代价 第二遍计算出答案,点1的答案就是dfs1时处理出的代价,剩下的点的答案就对于它与它父亲节点的那条边计算一下就好 具体看代码吧 【代码】 ...
阅读(66) 评论(0)

bzoj 1925: [Sdoi2010]地精部落

→题目链接← 【题解】 a[ 0 ][ 0 ]=1; a[ i ][ j ]=a[ i ][ j-1 ]+a[ i-1 ][ i-j ]; (i从1~n  j从1~i) ans=a[ n ][ n ]*2; 中间%一%就好 【代码】 #include #define ll long long using namespace std; int n,mod; ll ...
阅读(55) 评论(0)

bzoj 1216: [HNOI2003]操作系统

→题目链接← 【想说的话】 听说03年不让用stl... 所以就会产生这样的题... 【题解】 用优先队列按照题意模拟就好了 【代码】 #include using namespace std; struct node{ int num,ti,t,x; friend bool operator < (node a,node b){ if(a.x==...
阅读(77) 评论(0)

bzoj 3196: Tyvj 1730 二逼平衡树 树套树

→题目链接← 【想说的话】 不知道为什么这么晚了突然就想写了... 这是我第一颗树套树了,其实算半颗?有一半用pb_ds水的=.= 但是写出来还是很有成就感的...但是也同时也非常的虚平衡树... 【题解】 线段树套平衡树 用pbds搞得平衡树,这种东西需要编译器版本好高...bzoj上null_type还不行,必须换成旧版的null_mapped_type (如果...
阅读(106) 评论(0)

bzoj 1208: [HNOI2004]宠物收养所 stl

→题目链接← 【想说的话】 又是一道stl可以水过的好题 本来有输入输出优化的...但是为了缩代码,删掉了 【题解】 不用管是宠物还是人来了,如果另一方有剩余,那就直接找最接近的加进答案,否则把他放进这一方的set 咋找set搞一搞就好了,代码应该挺可看的-___- 【代码】 #include #define ll long long #define mo...
阅读(84) 评论(0)

bzoj 3364: [Usaco2004 Feb]Distance Queries 距离咨询 LCA

→题目链接← 【想说的话】 TLE了3遍后我深刻的认识到了.... 跑最短路果然不可行... 【题解】 显然是裸的LCA 【代码】 #include #include #include #include using namespace std; struct node{ int to,len; node(int x,int y){to=x,len=...
阅读(64) 评论(0)

bzoj 3363: [Usaco2004 Feb]Cow Marathon 奶牛马拉松 树的直径

→题目链接← 【想说的话】 一开始以为还要像前面一题那样搞带权并查集 然后我就不会了... 后来突然发现我zz了 最后一个方向没用了...直接建双向边然后跑树的直径就行了... 幸亏这个题保证边不交叉,要不然就彻底不会了 【题解】 建双向边然后跑树的直径 找树的直径:随便从一个点跑bfs,找到距离它最远的那个点,再从那个点跑bfs,最长路就是树的直径 ...
阅读(71) 评论(0)

bzoj 3362: [Usaco2004 Feb]Navigation Nightmare 导航噩梦 带权并查集

→题目链接← 【想说的话】 一道带权并查集好(水)题 以前觉得带权并查集挺屌的... 但是写过才发现就是正常的并查集顺便维护点什么东西... 好像我写的有点暴力啊...跑的好慢啊 【题解】 做并查集的过程中找根时不做路径压缩 然后对于每个点保存它到它的父亲节点需要在x轴和y轴上移动多少 每次合并x、y时找到y的根并记录从y移动到跟需要在x轴和y轴上移动多少 然后...
阅读(70) 评论(1)

bzoj 1230: [Usaco2008 Nov]lites 开关灯

→题目链接← 正解是线段树... 然而暴力能过为什么要费劲呢=.= 代码: #include #include #include #include #include using namespace std; bool f[100010]; int main(){ int n,m; scanf("%d%d",&n,&m); for(int i=0...
阅读(69) 评论(0)

bzoj 1232: [Usaco2008Nov]安慰奶牛cheer

→题目链接← 读题就可以看出肯定用最小生成树 只按照边权找到最小生成树后,计算最后的时间是 Σ边权*2+Σ点权*出度+我们要选的过夜的点的权值 然后发现,如果只按照边权找最小生成树是不正确的 因为我们正常跑kruskal的时候每次会将边权*2+两边点的点权加进答案 所以我们可以在排序前把每条边两边点的点权都加进这个边权之中,并且把原边权*2 这样再跑kruskal就每...
阅读(63) 评论(0)

树链剖分 模板

bzoj 1036 #include #include #include #include #include #define inf 999999999 using namespace std; struct node{ int Max,sum; int l,r; }tree[120020]; int n; int w[30030],son[30030],totree[30030],...
阅读(71) 评论(0)
    -广告-
    一个极其温馨的提示
    个人资料
    • 访问:48281次
    • 积分:1744
    • 等级:
    • 排名:千里之外
    • 原创:127篇
    • 转载:1篇
    • 译文:0篇
    • 评论:22条
    最新评论