————基础数据结构————
everlasting__
'-'
展开
-
bzoj 1083: [SCOI2005]繁忙的都市 并查集
→题目链接← 使n个点联通显然的是n-1条边 将边以长度从小到大排序,如果目前的边的两端点不在同一集合中,就选择这个边,这显然是最优的 代码: #include #include #include using namespace std; struct edge{ int s,t,len; friend bool operator < (edge a,edge b)原创 2017-08-19 10:32:39 · 240 阅读 · 0 评论 -
bzoj 3016: [Usaco2012 Nov]Clumsy Cows 栈
→题目链接← 说是栈,其实就用一个变量记录下就好,我用的sum 碰到(就++,碰到)就-- 当sum为负时一定是不合法的,这时候一定要改一下,所以ans++ 然后令sum等于1,因为把一个不合法的)改成了( 最后如果sum大于0,就说明还要改sum/2次 所以最后ans=ans+sum/2 代码: #include #include #include #includ原创 2017-08-14 09:24:10 · 348 阅读 · 0 评论 -
bzoj 3397: [Usaco2009 Feb]Surround the Islands 环岛篱笆
→题目链接← 令人一看样例就不想做的题... 题面说的很麻烦..但是仔细想一想就是问一个点到其它点距离的和的最小值 用并查集将岛屿处理出来 将每个岛屿看作一个点 然后一边输入就能一边处理出岛屿间的距离 最后暴力求和取min就好 代码: #include #include #define inf 233333333 using namespace std; in原创 2017-09-04 09:11:49 · 349 阅读 · 0 评论 -
bzoj 3362: [Usaco2004 Feb]Navigation Nightmare 导航噩梦 带权并查集
→题目链接← 【想说的话】 一道带权并查集好(水)题 以前觉得带权并查集挺屌的... 但是写过才发现就是正常的并查集顺便维护点什么东西... 好像我写的有点暴力啊...跑的好慢啊 【题解】 做并查集的过程中找根时不做路径压缩 然后对于每个点保存它到它的父亲节点需要在x轴和y轴上移动多少 每次合并x、y时找到y的根并记录从y移动到跟需要在x轴和y轴上移动多少 然后原创 2017-10-10 21:38:36 · 323 阅读 · 1 评论 -
bzoj 4756: [Usaco2017 Jan]Promotion Counting
→题目链接← 【想说的话】 没有写过树状数组... 这算是我 树状数组初体验 ? 【题解】 先按能力值从大到小排序,然后找到每个牛的名次 之后一边dfs,一边用树状数组统计 【代码】 #include #define MAXN 100010 using namespace std; inline int rd(){ int x=0,y=1;char原创 2017-12-01 14:48:47 · 295 阅读 · 0 评论 -
bzoj 3356: [Usaco2004 Jan]禁闭围栏 离散化+树状数组
新博客链接:https://www.everlasting.wang/archives/228原创 2017-12-26 00:42:03 · 399 阅读 · 0 评论