usaco
文章平均质量分 51
mars_ch
。。
展开
-
强势回归!poj 1950
什么?好久没见到我了? 是啊 好久 没写博客了 但是 很快马上也就是现在 我 回来了!usaco列表 的搜索 被我写的如此煎熬 戳大致题意: 添加: + 两数相加 -两数相减 .把相邻两个看成一个 三种符号 是的 1 2 3 。。。。。n计算结果为0其实想的挺清楚的,类似三叉树吗,dfs 但是 一到‘.’就老想不清楚 还是代码能力太弱 其实 一直不会的就是 一堆连一块原创 2016-08-27 15:47:38 · 607 阅读 · 0 评论 -
poj 3251 Big Square
也许你会诧异这题 有啥好写题解的。。?暴力枚举不就完了但是 WA是自己作。没有看到不能平行。。T是真的。。。 O(n^4)怎么破?靠瞎减减呗。这里主要是感叹#define 的 快速。。最后实现的AC就是靠他。define的优缺点优点提高了程序的可读性,同时也方便进行修改;提高程序的运行效率:使用带参的宏定义既可完成函数调用的功能,又能避免函数的出栈与入栈操作,减少系统开销,提高运行效率;原创 2016-10-17 14:53:03 · 905 阅读 · 0 评论 -
10.26 打卡
真的 long long 什么的真的 不要 再忘了。。服了自己了。。强行建议喊一遍妈妈想一遍longlong然后 今天干了点啥。。 poj usaco列表啊。。很恐怖的是正确率poj 3257 水水的dp#include<cstdio>#include<algorithm>#include<cstring>using namespace std;struct data{ in原创 2016-10-27 07:44:24 · 250 阅读 · 0 评论 -
poj 3273 二分
一度停更,今天恢复。一下。哈哈大致题意:给出农夫在n天中每天的花费,要求把这n天分作m组,每组的天数必然是连续的,要求分得各组的花费之和应该尽可能地小,最后输出各组花费之和中的最大值最大值的最小化。二分吗!处理没啥主意的,check脑子转个弯就ok一A#include<cstdio>#include<algorithm>#include<cstring>//by mars_chusing n原创 2016-10-03 21:23:40 · 288 阅读 · 0 评论 -
poj 3040
好题贪心?因为面值小的硬币总能整除面值较大的。所以可以用贪心来解决。 首先面值比c大的直接选用。 然后对于剩下的,从大到小选取可以凑成的最接近c的但是不超过c的、 如果小于c的话从小到大再选取(保证损失最小)找到可以凑成一对的第一个。#include<cstdio>#include<algorithm>#include<cstring>using namespace std;//by原创 2016-10-28 09:47:07 · 317 阅读 · 0 评论 -
poj 3038 好烦的题啊。。。
题意请看@SiriusRen。还有这个人是multiset。。可以找他。。看题解思路很好想。就是贪心。有人就让上, 超载就让目的地最远的下去【因为他占地时间最长吗。影响的也最多】 该下车的下车所以麻烦在于 靠 怎么实现。 于是我选择 死亡 不 优先队列。 所以优先队列维护的应该是 最远的又因为想扫一遍起点所以拿vector存了一遍起点航线的信息。 注意统计一下能够下车的人就好了【听起来好像原创 2016-10-28 14:47:15 · 364 阅读 · 0 评论 -
poj 2455
说实话我都不知道为什么要写这题题解。毕竟代码都不是我写的, 嗯 思路很好想 二分+网络流判定可行性,这个想到了。然后决定学习dinic所以当个备忘录,明天求教#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <queue> using namespac原创 2016-10-30 22:36:59 · 323 阅读 · 0 评论 -
poj 3171 Cleaning Shifts
唔 思路是 dp 很好想到 f[i]=min(f[j])+a[i].s; a[i].l-1=#include<cstdio>#include<algorithm>#include<cstring>#define inf 0x3fffffffusing namespace std;//by mars_chint n,m,E;struct data{ int f,t原创 2016-10-31 10:54:18 · 516 阅读 · 0 评论 -
poj 3167
好题啊kmp+树状数组可以加深 kmp的理解在求next数组的时候 匹配条件不应该是 b[i]=b[j]吗 我们把他改成 我们体力所需要的条件 也就是rank[i]=rank[j] rank是什么呢就是当前数前面比他小的和和他相等的,只要跟模式串一样就ok 所以 就ok了#include<cstdio>#include<algorithm>#include<cstring>#def原创 2016-11-01 10:45:49 · 305 阅读 · 0 评论 -
poj 3168
姿势不对毁一生。WA了因为没有考虑到 很多个边相等 只考虑了 相邻2个所以挂了,要求各做大值才ok然后还有 左下角右上角坐标反了。。#include<cstdio>#include<algorithm>#include<cstring>#include<vector>using namespace std;//by mars_chstruct data{ int l,r,no原创 2016-11-01 10:50:09 · 342 阅读 · 0 评论 -
bzoj 1572 贪心
DescriptionFarmer John 有太多的工作要做啊!!!!!!!!为了让农场高效运转,他必须靠他的工作赚钱,每项工作花一个单位时间。 他的工作日从0时刻开始,有1000000000个单位时间(!)。在任一时刻,他都可以选择编号1~N的N(1 <= N <= 100000)项工作中的任意一项工作来完成。 因为他在每个单位时间里只能做一个工作,而每项工作又有一个截止日期,所以他很难有时间完原创 2016-11-01 11:31:06 · 344 阅读 · 0 评论 -
poj 3622 Gourmet Grazers STL之multiset
主要是STL的应用吧。。。 题意: 有很多种草,有两个属性:价格和新鲜度;有很多牛,它们都会各自需求一种草,要求是其价格最低为ai,新鲜度最低为bi,且这些牛不希望自己的草和别人的一样。问要满足所有需求的最小花费是多少?题解: 大概是贪心吧。。这种东西还算比较明显吧。。想不到的算法大概都是贪心或者二分答案?所以我们把牛的挑剔程度排个序。然后把每种草再排个序。然后枚举每一个牛将符合条件的草的价钱原创 2016-10-17 09:11:04 · 557 阅读 · 0 评论 -
bzoj 1576 [Usaco2009 Jan]安全路经Travel
唔 不是很简单的题。。。Input第一行: 两个空格分开的数, N和M第2..M+1行: 三个空格分开的数a_i, b_i,和t_iOutput第1..N-1行: 第i行包含一个数:从牛棚_1到牛棚_i+1并且避免从牛棚1到牛棚i+1最短路经上最后一条牛路的最少的时间.如果这样的路经不存在,输出-1.Sample Input4 51 2 21 3 23 4 43 2 12 4 3输入解释原创 2016-11-02 15:46:23 · 364 阅读 · 0 评论 -
BZOJ 1578 [Usaco2009 Feb]Stock Market 股票市场
Description尽管奶牛们天生谨慎,她们仍然在住房抵押信贷市场中受到打击,现在她们开始着手于股市。 Bessie很有先见之明,她不仅知道今天S (2 <= S <= 50)只股票的价格,还知道接下来一共D(2 <= D <= 10)天的(包括今天)。 给定一个D天的股票价格矩阵(1 <= 价格 <= 1000)以及初始资金M(1 <= M <= 200,000),求一个最优买卖策略使得最大化总原创 2016-11-02 19:42:38 · 960 阅读 · 0 评论 -
poj 1951
这题! 大坑啊! 坑死 戳题意不解释!注意 句点前不能有 空格注意 还会有别的符号,比如 逗号!普及 get()用法好吧 看看代码 {其实写的还是 挺短的}#include <cstdio>#include <cstring>#include <algorithm>using namespace std;char a[75];char b[75];int cnt=0;bo原创 2016-08-27 17:21:30 · 573 阅读 · 0 评论 -
poj 3272
这题蛮有意思的吗所以来写个博客题意:n个点m条边的有向图,从所有入度为0的点出发到达n,问所有可能路径中,经过的某条路的最大次数是多少。边全是由标号小的到标号大的。戳一开始的想法?暴搜吧,所有路径统计一下经过的边然后1 ≤ N ≤ 5,000 1 ≤ M ≤ 50,000虽说以usaco的数据不一定超市,但是我们姑且按数据范围认为超时吧那怎么做呢?怎么做呢》怎么做呢?漫长的思考过程开始了。。于是决原创 2016-10-09 20:26:18 · 337 阅读 · 0 评论 -
poj 3281
题意:给出牛,饮料还有食物的数量,每头牛给出喜欢的饮料和食物,最后求出能够满足的牛的数量戳一开始觉得是二分图匹配,但是怎么配两边的呢? 遂放弃。然后 听说网络流可以弄二分图?很好。怎么解决 一头牛对应一种呢?把牛拆成;两个点,中间连一条边权为1的边。搞定。那现在说一下EK算法。戳这里就好 给个模板题 1273#include<iostream>#include<cstdio>#include原创 2016-10-09 20:54:22 · 264 阅读 · 0 评论 -
poj 3276 Face the right way
戳题目大意: 给定n头牛,F表示方向朝前,B表示方向向后,问怎么翻转恰好k个长度的区间,使得翻转次数最少的让牛都超前。思路:最差情况n^3的暴力。果断TLE啊。。。那怎么优化。在n^3循环中,我们循环了许多 遍中间的值。。那怎么去掉他们?我们可以统计他们的关系,也就是和钱一头牛一不一样,给一个原点牛,他的方向是向前的。如果f[i]=1,那么就需要翻转他和他后面的区间,但是翻转区间之内的东西跟前一个原创 2016-10-10 10:18:10 · 332 阅读 · 0 评论 -
poj 3275 Ranking The Cows
题目大意: 略了。。。。大概就是邻接矩阵会t的一道题,所以用邻接表优化。邻接表写跪了。。我的天。。主要是高低的邻接表。。#include<cstdio>#include<cstring>#include<algorithm>using namespace std;//by mars_chint c[1005][1005],map[1005][1005];int n,m;struct原创 2016-10-10 14:44:19 · 285 阅读 · 0 评论 -
poj 3274 Gold Balanced Lineup
题目大意:大家自己搜一下题典如何。。?这题太难懂也太长了。。所以思路:一开始想恩n^2*k的复杂度很好,铁定会T; 然后怎么办?那就找找性质被。我们发现题目的要求就是: sum[i][j]-sum[b][j]=sum[i][j-1]-sum[b][j-1]=sum[i][j-2]-sum[b][j-2]=……=sum[i][1]-sum[b][1] 恩。前缀和吗, 再然后 sum[i][j原创 2016-10-11 10:38:38 · 223 阅读 · 0 评论 -
poj 3621 Sightseeing cows
最优比例生成环的题。要取一个回路上点权之和比边权之和的最大值。我们设最后的答案为ansans=∑f[i]∑w[i][j]ans=\frac{\sum f[i]}{\sum w[i][j]}那么-Σf[i]+ans*w[i][j]=0我现在二分的值为k,如果k<=ans的话,这个值是<0的 所以判负环最短路。如果有环的时候那么就可以变大二分的值。即l=mid;注意有重边.zhuW( ̄_ ̄)W#inc原创 2016-10-12 16:05:21 · 310 阅读 · 0 评论 -
poj 3271 LilyPad
神坑。一上午全奉献给了他。哭。还在还坑过了 神刚,大夫。心满意足。题目大意:Bessie在一片池塘里面玩,FJ希望Bessie从标有3的格子跳到标有4的格子里面去。0表示水面,1表示极其结实的转基因荷叶,2表示更结实的大石头。3和4处都有荷叶。Bessie和国际象棋里面的骑士(也就是马啦)走法一致,都是向一个方向走两格,再拐弯一格。现在,Bessie只能在荷叶上面跳,水面上可以放荷叶。问Bessie原创 2016-10-13 15:21:17 · 339 阅读 · 0 评论 -
09.27 打卡
poj 3672 改了许久主要是 区间更新时的范围有弄错了。。 还有 l,r 写反了。。。。 每回线段树都要调很久怎么破。#include<cstdio>#include<algorithm>#include<cstring>using namespace std;//by mars_chstruct data{ int l,r; int lsum,rsum原创 2016-09-28 00:46:13 · 258 阅读 · 0 评论 -
usaco之lilypad 大合集!集合poj 3271 bzoj 1632
呜咕~~今天有考试了。 先来反思一下。 1.第一题,思路很简单的模拟。。但是由于 一开始智障存的int取代了本来该有的都double导致 调了很久。还是缺根弦。 2.很简单的判断寻找的点是否在路径上的方法没有想到。而且其实并没有很深刻的理解。。 3.暂时不知道所以我们来说一下 题目这两道题: 第一道: poj 3271 其实这个原来 写过题解了。。这会放一起再对比一遍。。 第二道:原创 2016-11-02 00:24:42 · 518 阅读 · 0 评论