当前搜索:

bzoj 1709: [Usaco2007 Oct]Super Paintball超级弹珠

→题目链接← 显然的是如果对于每个点都判断一次是否能打到所有的敌人是会TLE的 所以我们可以换一种想法 我们维护一个点可以打到多少敌人 然后对于每个敌人,我们令所有能打到他的地方的值+1 所以最后只要那个地方的值>=m,就一定是可行点 代码: #include ...
阅读(108) 评论(0)

bzoj 3397: [Usaco2009 Feb]Surround the Islands 环岛篱笆

→题目链接← 令人一看样例就不想做的题... 题面说的很麻烦..但是仔细想一想就是问一个点到其它点距离的和的最小值 用并查集将岛屿处理出来 将每个岛屿看作一个点 然后一边输入就能一边处理出岛屿间的距离 最后暴力求和取min就好 代码: #include #inclu...
阅读(104) 评论(0)

bzoj 3396: [Usaco2009 Jan]Total flow 水流 网络流

→题目链接← 看到题面后感觉可能有什么奇技淫巧...? 但是懒得想 数据辣么小 直接网络流搞一搞就行了 代码: #include #include #include #include #include #define ll long long #define inf...
阅读(81) 评论(0)

bzoj 3479: [Usaco2014 Mar]Watering the Fields 最小生成树

→题目链接← 裸的最小生成树...只会prim算法 n^2暴力建边 然后跑最小生成树 学了这么长的时间终于第一次写最小生成树 真棒啊 代码: #include #include #include #include #include using namespace s...
阅读(108) 评论(0)

bzoj 4749: [Usaco2016 Dec]Moocast dfs

→题目链接← 很水的dfs题 n^2的dfs,把每个点都当作起点跑一遍,最后取max 代码: #include #include #include #include using namespace std; struct node{ int x,y,p; }; in...
阅读(178) 评论(0)

bzoj 4996: [Usaco2017 Feb]Why Did the Cow Cross the Road II

bzoj没有题面.... 链接是到洛谷的 →题目链接← 维护有多少坏掉的路灯的前缀和 然后对于每个sum[i]-sum[i-k]取max就好 代码: #include #include #include #include using namespace s...
阅读(146) 评论(0)

bzoj 4511: [Usaco2016 Jan]Subsequences Summing to Sevens

→题目链接← 维护一个前缀和,但是它维护的是前缀和%7 然后如果存在sum[i]==sum[j],显然的是这中间的一段是可以被7整除的 所以枚举余数,每次找到左右端点,取一个max就好 代码: #include #include #include #include using names...
阅读(127) 评论(0)

bzoj 4781: [Usaco2017 Open]Paired Up

→题目链接← 每次把最大的牛与最小的牛合并,最终结果一定是最大值最小的 所以我们用优先队列维护一个大根堆,再维护一个小根堆,每次合并更新下答案就好 代码: #include #include #include #include #include #include using namesp...
阅读(132) 评论(0)

bzoj 3890: [Usaco2015 Jan]Meeting Time bfs

→题目链接← 对于每个点我们维护两个bool数组 vis[0][i][j]=true表示第j时刻Bessie来过点i vis[0][i][j]=true表示第j时刻Elsie来过点i 然后我们从1号点开始,每当vis[0或1][i][j]==false时就变成true,并放到队列里...
阅读(102) 评论(0)

bzoj 4396: [Usaco2015 dec]High Card Wins

→题目链接← 每个牌肯定是管第一个比它小的牌是最优的 所以我们只需要从小到大记录对面目前还剩几张牌,手里只要有能管的就管上一个 代码: #include #include using namespace std; int n; bool f[100010]; int a...
阅读(216) 评论(0)

bzoj 4397: [Usaco2015 dec]Breed Counting 前缀和/线段树

→题目链接← 这个题我傻逼了 看到区间查询我下意识地打了线段树 然后一发A了后发现其他人的代码都好快啊 找题解发现都是用的前缀和 靠! 然后又搞了一发前缀和 我把两个代码都放上来吧 前缀和: #include #include using namespa...
阅读(134) 评论(0)

bzoj 3412: [Usaco2009 Dec]Music Notes乐谱

→题目链接← 维护前缀和,对于每次询问找到第一个大于它的数(也就是upper_bound)的下标,就是答案 手写可以二分找 用stl可以用upper_bound 代码: #include #include #include using namespace std; i...
阅读(103) 评论(0)

bzoj 3366: [Usaco2004 Feb]Breeding 奶牛饲育

特别鸣谢+膜拜ljss →题目链接← 题目大意就是有多少种不同的方案能乘出n 把所有的约数都暴力地找出来,然后dp[i]表示n=a[i]时有多少种方法可以得到这个数 显然的是如果a[i]%a[j]==0那么dp[i]+=dp[j] 初始时dp[i]都为1 最后那个dp就...
阅读(139) 评论(0)

bzoj 3358: [Usaco2004 Jan]洪水

→题目链接← 保存每个高度有多少个 如果目前剩的水的体积大于目前最矮的高度的数量,那么会使水面高度整体上升1,然后把目前的高度+1 然后再判断下以前是否已经有了+1后的高度,如果有把这两堆合并,再推进优先队列 直到最终高度后,只要初始高度小于等于最终高度,都加进ans 最后输出 ...
阅读(129) 评论(0)

bzoj 1083: [SCOI2005]繁忙的都市 并查集

→题目链接← 使n个点联通显然的是n-1条边 将边以长度从小到大排序,如果目前的边的两端点不在同一集合中,就选择这个边,这显然是最优的 代码: #include #include #include using namespace std; struct edge{ i...
阅读(85) 评论(0)

bzoj 1624: [Usaco2008 Open] Clear And Present Danger 寻宝之路 SPFA

→题目链接← 裸最短路 代码: #include #include #include #include #include #define inf 90000000 using namespace std; int n,m; int a[110][110]; int Min...
阅读(100) 评论(0)

bzoj 1293: [SCOI2009]生日礼物 STL

→题目链接← 对于每个彩珠我们保存它的下标和颜色,然后按下标排序 之后用set存对于每个颜色我们选中的彩珠的下标 如果insert的时候碰到set的size为0,说明这是一个新的颜色,我们就令difcol++ 每次使右端点向右移动1 然后如果左端点的彩珠的颜色的set的size大...
阅读(88) 评论(0)

bzoj 2748: [HAOI2012]音量调节 dp

→题目链接← 很水的一道题 如果第i首歌时音量为j是可行的,那么dp[i][j]=true 最初dp[0][beginLevel]=true; 之后每次暴力扫上一次的状态,转移就好 代码: #include #include #include #include #inc...
阅读(80) 评论(0)

bzoj 1218: [HNOI2003]激光炸弹 暴力

→题目链接← val[i][j]表示0~第i行,0~第j列所有炸弹价值的和 然后我们暴力枚举所有的正方形左上角那个点 (我是认为左上角为0,0  右下角为5000,5000) 每个正方形的价值可以O(1)算出 简单来说就是二位前缀和 没啦~~ 代码: #in...
阅读(86) 评论(0)

bzoj 1270: [BeijingWc2008]雷涛的小猫 dp

→题目链接← 一看到题就可以想到是动态规划 首先不作任何优化的dp时间复杂度显然是n^3的 dp[i][j]表示第i棵树,高度为j时最多可以吃到多少个柿子 num[i][j]表示第i棵树,高度为j的位置上有几个柿子 显然dp[i][j]=max(dp[i][j+1]+num[i]...
阅读(77) 评论(0)
    个人资料
    持之以恒
    等级:
    访问量: 5万+
    积分: 1832
    排名: 2万+
    最新评论