orz xhk

5/50

1597: [Usaco2008 Mar]土地购买

  $ f[i]=min(f[j]+x[i]*y[j+1]) $ 然后斜率优化

1699: [Usaco2007 Jan]Balanced Lineup排队

  silver里好像做过?

  静态RMQ直接上st表

1578: [Usaco2009 Feb]Stock Market 股票市场

  看成完全背包。对于每天都搞一下完全背包

1574: [Usaco2009 Jan]地震损坏Damage

  语文题QwQ。大力搜索,代码:

#include <bits/stdc++.h>
using namespace std;
const int maxn=, INF=1e9;
int n, vis[maxn];
vector<int> G[maxn];
void Addedge(int u,int v ){
G[u].push_back(v); G[v].push_back(u);
}
int ans;
int dfs(int x){
vis[x]=; ans--;
for(int i=;i<G[x].size();i++){
int v=G[x][i];
if(!vis[v]){
vis[v]=; dfs(v);
}
}
}
int main(){
int a,b,p,c;
scanf("%d%d%d",&n,&c,&p); ans=n;
while(c--){
scanf("%d%d",&a,&b); Addedge(a,b);
}
// vis[1]=1;
while(p--){
scanf("%d",&a); // vis[a]=1;
for(int i=;i<G[a].size();i++) vis[G[a][i]]=;
}
dfs();
printf("%d\n",ans);
return ;
}
/*
4 5 1
1 2
2 3
3 4
2 4
1 3
3 */

1577: [Usaco2009 Feb]庙会捷运Fair Shuttle

  数据范围看出来肯定是带个log的。。。。

  按照右端点从小到大排序,然后从前往后选取,要用线段树维护一下区间最大值。

#include <bits/stdc++.h>
#define ls o<<1,l,mid
#define rs o<<1|1,mid+1,r
using namespace std;
const int maxn=5e5, INF=1e9;
struct Node{
int l,r,num;
}a[maxn];
bool cmp(Node a,Node b){
return (a.r<b.r || (a.r==b.r && a.l>b.l));
}
int v[maxn],lazy[maxn];
void pushdown(int o,int l,int r){
v[o<<]+=lazy[o]; v[o<<|]+=lazy[o];
lazy[o<<]+=lazy[o]; lazy[o<<|]+=lazy[o];
lazy[o]=;
}
int query(int o,int l,int r,int L,int R){
if(l>R || r<L) return -;
if(l>=L && r<=R) return v[o];
pushdown(o,l,r);
int mid=l+r>>;
return max(query(ls,L,R),query(rs,L,R));
}
void add(int o,int l,int r,int val,int L,int R){
if(l>R || r<L) return;
if(l>=L && r<=R){v[o]+=val,lazy[o]+=val;return;}
int mid=l+r>>;
add(ls,val,L,R); add(rs,val,L,R);
v[o]=max(v[o<<],v[o<<|]);
} int main(){
int k,n,c; scanf("%d%d%d",&k,&n,&c);
for(int i=;i<k;i++){
scanf("%d%d%d",&a[i].l,&a[i].r,&a[i].num); a[i].r--;
}
sort(a,a+k,cmp);
int Ans=;
for(int i=;i<k;i++){
int ans=min(c-query(,,n,a[i].l,a[i].r),a[i].num);
// printf("----- %d %d\n",query(1,1,n,a[i].l,a[i].r),ans);
Ans+=ans;
add(,,n,ans,a[i].l,a[i].r);
}
printf("%d\n",Ans);
return ;
}

【做题记录】USACO gold * 50(第一篇)的更多相关文章

  1. Sam做题记录

    Sam做题记录 Hihocoder 后缀自动机二·重复旋律5 求一个串中本质不同的子串数 显然,答案是 \(\sum len[i]-len[fa[i]]\) Hihocoder 后缀自动机三·重复旋律 ...

  2. BJOI做题记录

    BJOI做题记录 终于想起还要做一下历年省选题了2333 然而咕了的还是比做了的多2333 LOJ #2178. 「BJOI2017」机动训练 咕了. LOJ #2179. 「BJOI2017」树的难 ...

  3. FJOI2017前做题记录

    FJOI2017前做题记录 2017-04-15 [ZJOI2017] 树状数组 问题转化后,变成区间随机将一个数异或一,询问两个位置的值相等的概率.(注意特判询问有一个区间的左端点为1的情况,因为题 ...

  4. UOJ 做题记录

    UOJ 做题记录 其实我这么弱> >根本不会做题呢> > #21. [UR #1]缩进优化 其实想想还是一道非常丝播的题目呢> > 直接对于每个缩进长度统计一遍就好 ...

  5. project euler做题记录

    ProjectEuler_做题记录 简单记录一下. problem 441 The inverse summation of coprime couples 神仙题.考虑答案为: \[\begin{a ...

  6. 退役IV次后做题记录

    退役IV次后做题记录 我啥都不会了.... AGC023 D 如果所有的楼房都在\(S\)同一边可以直接得出答案. 否则考虑最左最右两边的票数,如果左边>=右边,那么最右边会投给左边,因为就算车 ...

  7. 退役III次后做题记录(扯淡)

    退役III次后做题记录(扯淡) CF607E Cross Sum 计算几何屎题 直接二分一下,算出每条线的位置然后算 注意相对位置这个不能先搞出坐标,直接算角度就行了,不然会卡精度/px flag:计 ...

  8. 退役II次后做题记录

    退役II次后做题记录 感觉没啥好更的,咕. atcoder1219 历史研究 回滚莫队. [六省联考2017]组合数问题 我是傻逼 按照组合意义等价于\(nk\)个物品,选的物品\(\mod k\) ...

  9. [日记&做题记录]-Noip2016提高组复赛 倒数十天

    写这篇博客的时候有点激动 为了让自己不颓 还是写写日记 存存模板 Nov.8 2016 今天早上买了两个蛋挞 吃了一个 然后就做数论(前天晚上还是想放弃数论 但是昨天被数论虐了 woc noip模拟赛 ...

  10. noip做题记录+挑战一句话题解?

    因为灵巧实在太弱辽不得不做点noip续下命QQAQQQ 2018 积木大赛/铺设道路 傻逼原题? 然后傻逼的我居然检查了半天是不是有陷阱最后花了差不多一个小时才做掉我做过的原题...真的傻逼了我:( ...

随机推荐

  1. three.js入门系列之光源

    首先创建场景来试验各种光源带来的不同效果: 一.锥形光源(聚光灯) SpotLight 接下来缩小范围(π/7): 二.基础光源(环境光) AmbientLight 上例中没有添加环境光,使得周围黑漆 ...

  2. python常用模块之random模块

    python常用模块之random模块 在程序中很多会用到随机字符,比如登陆网站的随机验证码,通过random模块可以很容易生成随机字符串 1.random.randrange():返回1-10之间的 ...

  3. oracle管道函数的用法

    oracle管道函数是一类特殊的函数,oracle管道函数返回值类型必须为集合,下面将介绍oracle管道函数的语法. 在普通的函数中,使用dbms_output输出的信息,需要在服务器执行完整个函数 ...

  4. key相同合并Map

    public class Demo11 { public static void main(String[] args) { ConcurrentHashMap<Integer, Map< ...

  5. 在tableView中设置cell的图片和文字

    // 设置UITableViewCellEditingStyle的 accessoryType UITableViewCellAccessoryNone,                   // d ...

  6. 【剑指offer】不使用除法,构建乘积数组,C++实现

    # 题目 # 思路 设C[i] = A[0] * A[1] * - * A[i-1],D[i] =  A[i+1] * - * A[n-1],则C[i]按照从上到下的顺序计算,即C[i] = C[i- ...

  7. excel中多表汇总

    excel中将多个表中的结果汇总到一张表格里,而且汇总表格的数据是随着其它表格的数据变化面变化 其实就是函数sumif的使用,sumif函数的结构: sumif函数语法 sumif(range,cri ...

  8. 设置checkbox不能选中,复选框不能选中

    Web开发:设置复选框的只读效果 在Web开发中,有时候需要显示一些复选框(checkbox),表明这个地方是可以进行勾选操作的,但是有时候是只想告知用户"这个地方是可以进行勾选操作的&qu ...

  9. POJ3682King Arthur's Birthday Celebration(数学期望||概率DP)

    King Arthur is an narcissist who intends to spare no coins to celebrate his coming K-th birthday. Th ...

  10. BZOJ3673 可持久化并查集 by zky 【主席树】

    BZOJ3673 可持久化并查集 by zky Description n个集合 m个操作 操作: 1 a b 合并a,b所在集合 2 k 回到第k次操作之后的状态(查询算作操作) 3 a b 询问a ...