BZOJ 1666 水..

BZOJ 1579 分层图最短路.

BZOJ 1782 从一开始若某头牛停在U,那么U的子树的时间都会加一用BIT维护DFS序就行了

BZOJ 1572

贪心+堆 排序后查看是否超过了时间,超过了就弹出

 #include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
#define LL long long
using namespace std;
const LL Maxn=;
struct Node{LL p,d;}A[Maxn];
LL Ans,Cnt,n;
priority_queue<LL> Q;
inline bool cmp(Node A,Node B)
{return A.d<B.d || (A.d==B.d && A.p<B.p);}
int main()
{
scanf("%lld",&n);
for (LL i=;i<=n;i++) scanf("%lld%lld",&A[i].d,&A[i].p); sort(A+,A+n+,cmp); Cnt=;
for (LL i=;i<=n;i++)
{
Ans+=A[i].p; Cnt++; Q.push(-A[i].p);
if (Cnt>A[i].d) {Ans+=Q.top(); Q.pop(); Cnt--; }
}
printf("%lld\n",Ans);
return ;
}

BZOJ 1572

BZOJ 1592

这道题有个结论就是最小花费的高度肯定和在原来的高度中.

这个结论感觉上非常显然,如果不在原来的高度中,那个肯定能从原来的高度中找到最优的.然后直接Dp就可以了

 #include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
const int Maxn=;
const int Inf=0x3f3f3f3f;
int a[Maxn],b[Maxn],C[Maxn][Maxn],F[Maxn][Maxn],Ans,n;
inline int Min(int x,int y) {return x>y?y:x;}
inline int Abs(int x) {return x>?x:-x;}
inline bool cmp1(int a,int b) {return a<b;}
inline bool cmp2(int a,int b) {return a>b;}
int main()
{
scanf("%d",&n);
for (int i=;i<=n;i++) scanf("%d",&a[i]),b[i]=a[i];
for (int i=;i<=n;i++) F[i][]=Inf;
sort(b+,b+n+,cmp1);
for (int i=;i<=n;i++)
for (int j=;j<=n;j++)
{
C[i][j]=F[i-][j]+Abs(b[j]-a[i]);
F[i][j]=Min(F[i][j-],C[i][j]);
}
Ans=F[n][n];
sort(b+,b+n+,cmp2);
for (int i=;i<=n;i++)
for (int j=;j<=n;j++)
{
C[i][j]=F[i-][j]+Abs(b[j]-a[i]);
F[i][j]=Min(F[i][j-],C[i][j]);
}
printf("%d\n",Min(Ans,F[n][n]));
return ;
}

BZOJ 1592

BZOJ 1827

树形DP,U节点向子节点转移时,

ans′=ans–size∗w+(tot–size)∗w

ans′=ans+(tot–2∗size)∗w 若(tot–2∗size)<0那么ans'比ans优

 #include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#define LL long long
using namespace std; const LL Maxn=;
struct EDGE{LL to,next,w;}edge[Maxn<<];
LL head[Maxn],C[Maxn],n,u,v,w,Ans,Dis[Maxn],Size[Maxn],cnt;
inline void Add(LL u,LL v,LL w)
{edge[cnt].to=v;edge[cnt].next=head[u];edge[cnt].w=w;head[u]=cnt++;}
LL Dfs(LL u,LL fa)
{
LL Ret=Dis[u]*C[u]; Size[u]=C[u];
for (LL i=head[u];i!=-;i=edge[i].next)
{
if (edge[i].to==fa) continue;
Dis[edge[i].to]=Dis[u]+edge[i].w;
Ret+=Dfs(edge[i].to,u);
Size[u]+=Size[edge[i].to];
}
return Ret;
}
void Move(LL u,LL fa)
{
for (LL i=head[u];i!=-;i=edge[i].next)
{
if (edge[i].to==fa) continue;
if (Size[]-*Size[edge[i].to]<)
{
Ans+=(Size[]-*Size[edge[i].to])*edge[i].w;
Move(edge[i].to,u);
}
}
}
int main()
{
scanf("%lld",&n);
for (LL i=;i<=n;i++) scanf("%lld",&C[i]);
memset(head,-,sizeof(head));
for (LL i=;i<n;i++)
{
scanf("%lld%lld%lld",&u,&v,&w);
Add(u,v,w),Add(v,u,w);
}
Ans=Dfs(,);
Move(,);
printf("%lld\n",Ans);
return ;
}

BZOJ 1827

USACO 刷水的更多相关文章

  1. [洛谷U22157]刷水题(数位dp)(hash)

    题目背景 做正经题是不可能做正经题的,这辈子都不可能做正经题的,毒瘤题又不会做毒瘤题,就是水题这种东西,才维持了蒟蒻的信心: 题目描述 这里有N+1 道水题,编号分别为0 ~N+1 ,每道水题都有它自 ...

  2. Luogu USACO Training 刷水记录

    开个坑记录一下刷USACO的Training的记录 可能会随时弃坑 只有代码和做法简述 可能没有做法简述 [USACO1.1]你的飞碟在这儿Your Ride Is He… 模拟,细节已忘 #incl ...

  3. usaco silver刷水~其实是回顾一下,补题解

    [BZOJ1606][Usaco2008 Dec]Hay For Sale 裸01背包 ;i<=n;i++) for(int j=m;j>=a[i];j--) f[j]=max(f[j], ...

  4. USACO 刷题有感

    最近每天都尽量保持着每天一道USACO的题目,呵呵,一开始都是满简单的,一看题目基本上思路就哗啦啦地出来了,只不过代码实现有点麻烦,花了一些时间去调试,总体感觉还不错,但是越往后做,应该就很难保持一天 ...

  5. bzoj刷水

    因为最近的生活太颓废总是不做题而被老师D了一番, 所以今天晚上到bzoj上去刷了几道水题.....   bzoj 4320: ShangHai2006 Homework 题目大意 维护一个支持两个操作 ...

  6. USACO刷题之路

    重拾经典 本科生涯结束了,在大学做的ACM竞赛现在基本忘的差不多了.USACO作为一个经典的题库,本来是面向OI选手的,但是由于题目质量很高所以受到大家的好评,所以我这次就从它开始我的刷题之路吧. 由 ...

  7. [暑假的bzoj刷水记录]

    (这篇我就不信有网站来扣) 这个暑假打算刷刷题啥的 但是写博客好累啊  堆一起算了 隔一段更新一下.  7月27号之前刷的的就不写了 , 写的累 代码不贴了,可以找我要啊.. 2017.8.27upd ...

  8. 【刷水】之USACO2008资格赛(Bzoj1599-1603)

    做之前真是没想到有这么水>.< 但做了还是发上来吧>.< 就当是刷一刷AC量&1A率什么的>.< Bzoj1599: [Usaco2008 Oct]笨重的石 ...

  9. USACO刷题之路,开始了

    几天前,重新开始刷题了. 重新刷题有几个原因: 1.曾经的OI经历,如今除了悟性高些.知识多些,大多已经遗忘.不希望真的让之前的OI水平就这么丢了. 2.越来越觉得,刷题真的是一件很开心的事情.大学中 ...

随机推荐

  1. android webview远程调试

    H5的调试的方式一般用chrome的emulator就好,可是遇到APP就拙计了.这时候还得用远程调试,远程调试很给力,不过目前网上还没有好的文章讲解,要好好的把其配置下来还是非常有难度的,今天折腾了 ...

  2. CentOS_7.2编译安装PHP_5.6.20添加扩展模块

    添加ZendGuardLoader扩展: # 解压ZendGuardLoader.so到"/usr/local/php/lib/php/extensions/no-debug-non-zts ...

  3. MySql学习(四) —— 函数、视图

    注:该MySql系列博客仅为个人学习笔记. 本篇博客主要涉及MySql 函数(数学函数.字符串函数.日期时间函数.流程控制函数等),视图. 一.函数 1. 数学函数 对于数学函数,若发生错误,所有数学 ...

  4. C# Bitmap 复制

    以后再详述,先上代码. public bool CopyBitmap(Bitmap source, Bitmap destination) { if ((source.Width != destina ...

  5. python安装supervisor

    1.下载supervisor-3.3.1.tar.gz    http://pan.baidu.com/s/1dEPhGEd 2.下载meld3-1.0.2.tar.gz   http://pan.b ...

  6. mac 安装mvn 失败

    安装过程遇到2个问题 1.java版本不对 2.Error: JAVA_HOME is not defined correctly. We cannot execute $/usr/libexec/j ...

  7. iOS版本更新的App提交审核流程

    App的版本更新估计是在所难免的了!更新App和新的App发布有何不同了?今天我们一起来看看吧!在发布App的时候我们需要通过开发者帐号——(申请)——>发布证书(需要钥匙串对证书签名也叫加密( ...

  8. 腾讯的一道JavaScript面试题

    //题目:分别弹出什么内容? <!-- function test(){ this.a = 1; alert(this); //[object Window] } test(); var t = ...

  9. 【软件】【diamond】-管脚分配

    未用到的引脚设置,浮空引脚设置.可以设置浮空电压

  10. node.js中buffer需要知道的一些点

    本文为阅读朴灵大大的<深入浅出node.js>笔记: 在前端开发的时候,我们不曾用过buffer,也没得用.buffer是node环境引入的,用来方便应对二进制数据的处理.这里我们对它应该 ...