Link:

传送门

A:

分层图最短路(其实就是最短路转移时多记录一维的数据

#include <bits/stdc++.h>using namespace std;
#define X first
#define Y second
typedef double db;
typedef long long ll;
typedef pair<int,int> P;
const int MAXN=105;
int n,T,dat[MAXN][MAXN];
ll d[MAXN][MAXN][3];
struct node{int x,y,d,w;};int dx[]={0,0,1,-1};
int dy[]={1,-1,0,0};
priority_queue<node> q;
bool operator < (node a,node b){return a.w>b.w;}int main()
{scanf("%d%d",&n,&T);for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)scanf("%d",&dat[i][j]);memset(d,0x3f,sizeof(d));d[1][1][0]=0;q.push(node{1,1,0,0});while(!q.empty()){node t=q.top();q.pop();if(d[t.x][t.y][t.d]<t.w) continue;for(int i=0;i<4;i++){int fx=t.x+dx[i],fy=t.y+dy[i],cur=(t.d+1)%3;if(fx<1||fy<1||fx>n||fy>n) continue;ll cost=t.w+T+(cur==0?dat[fx][fy]:0);if(d[fx][fy][cur]>cost)d[fx][fy][cur]=cost,q.push(node{fx,fy,cur,cost});}}printf("%lld",min(d[n][n][0],min(d[n][n][1],d[n][n][2])));return 0;
}

Problem A

B:

本来很基础的$dp$还纠结了一会状态的选择……

其实就是最长公共子序列:$dp[i][j]=dp[i-1][j-1]+1/max(dp[i-1][j],dp[i][j-1])$

#include <bits/stdc++.h>using namespace std;
#define X first
#define Y second
typedef double db;
typedef long long ll;
typedef pair<int,int> P;
const int MAXN=1e3+10;
int n,a[MAXN],b[MAXN],dp[MAXN][MAXN];int main()
{scanf("%d",&n);for(int i=1;i<=n;i++) scanf("%d",&a[i]);for(int i=1;i<=n;i++) scanf("%d",&b[i]);for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){if(abs(a[i]-b[j])<=4)dp[i][j]=max(dp[i][j],dp[i-1][j-1]+1);dp[i][j]=max(dp[i][j],max(dp[i-1][j],dp[i][j-1]));}printf("%d",dp[n][n]);return 0;
}

Problem B

如果从$dp[i][j]$向后转移答案依然是对的,但可能理解起来有些奇怪……

虽然$dp[i][j]$直接向$dp[i+1][j]/dp[i][j+1]$转移可能不是最优解,但一定能保证最优解存在

其实就是将上述直接取$max$的过程拆成两次更新

C:

此类偏序问题基本上都涉及到排序

可以发现将$l_i$排序后对于第$i$区间产生的关系数就是在该区间内$r_j$

#include <bits/stdc++.h>using namespace std;
#define X first
#define Y second
#define pb push_back
typedef double db;
typedef long long ll;
typedef pair<int,int> P;
const int MAXN=2e5+10;
int n,x,bit[MAXN];
ll res=0;P dat[MAXN];void Update(int x)
{while(x<=2*n) bit[x]++,x+=x&(-x);}
ll Query(int x)
{ll ret=0;while(x) ret+=bit[x],x-=x&(-x);return ret;}int main()
{scanf("%d",&n);for(int i=1;i<=2*n;i++){scanf("%d",&x);if(!dat[x].X) dat[x].X=i;else dat[x].Y=i;}sort(dat+1,dat+n+1);for(int i=1;i<=n;i++)res+=Query(dat[i].Y)-Query(dat[i].X-1),Update(dat[i].Y);printf("%lld",res);return 0;
}

Problem C

转载于:https://www.cnblogs.com/newera/p/9637747.html

[USACO 2017 Feb Gold] Tutorial相关推荐

  1. [ USACO 2017 FEB ] Why Did the Cow Cross the Road III (Gold)

    \(\\\) \(Description\) 给定长度为\(2N\)的序列,\(1\text ~N\)各出现过\(2\)次,\(i\)第一次出现位置记为\(a_i\),第二次记为\(b_i\),求满足 ...

  2. BZOJ1782[USACO 2010 Feb Gold 3.Slowing down]——dfs+treap

    题目描述 每天Farmer John的N头奶牛(1 <= N <= 100000,编号1-N)从粮仓走向他的自己的牧场.牧场构成了一棵树,粮仓在1号牧场.恰好有N-1条道路直接连接着牧场, ...

  3. BZOJ1579 USACO 2009 Feb Gold 3.Revamping Trails Solution

    标题效果:一个N积分m无向图边.它可以是路径k右边缘值变0,确定此时1-n最短路径长度. Sol:我以为我们考虑分层图,图复制k+1部分,每间0~k一层.代表在这个时候已经过去"自由边缘&q ...

  4. 【USACO 2017 December Gold】A Pie for a Pie题解

    Description Bessie and Elsie have each baked N pies (1≤N≤10^5). Each of the 2N pies has a tastiness ...

  5. USACO翻译:USACO 2014 FEB SILVER 三题

    USACO 2014 FEB SILVER 一.题目概览 中文题目名称 自动打字 路障 神秘代码 英文题目名称 auto rblock scode 可执行文件名 auto rblock scode 输 ...

  6. USACO翻译:USACO 2012 FEB Silver三题

    USACO 2012 FEB SILVER 一.题目概览 中文题目名称 矩形草地 奶牛IDs 搬家 英文题目名称 planting cowids relocate 可执行文件名 planting co ...

  7. [USACO 2010 Feb S]Chocolate Eating

    题目: [USACO 2010 Feb S]Chocolate Eating ,哈哈,我们今天来看一道二分答案的题嘛,这是选自USACO上的一道题,好了,我们一起来看看题意吧: 题目描述是复制的,可能 ...

  8. BSOJ4217 【USACO 2013 Feburary Gold】旅行线路 DP(双路递推)

    4217 -- [USACO 2013 Feburary Gold]旅行线路 Description 贝西经营着一家旅行社,一天贝西带着几队游客沿着亚马逊河旅行,河的两边分布着一些景点,每个景点都对应 ...

  9. [ USACO 2007 FEB ] Lilypad Pond (Silver)

    \(\\\) \(Description\) 一张\(N\times M\)的网格,已知起点和终点,其中有一些地方是落脚点,有一些地方是空地,还有一些地方是坏点. 现在要从起点到终点,每次移动走日字\ ...

最新文章

  1. termux安装python3失败_boot空间不足导致安装python3失败
  2. python 调用c++返回char*
  3. 联合权值 NOIP2014 提高组 Day1 T2
  4. 5、Java Swing JButton:按钮组件
  5. 软件打开时间、窗体透明度、背景色---《用delphi开发共享软件》-15.1任务管理器...
  6. Android App Build Workflow
  7. 下一代 Web 应用模型 —— Progressive Web App (PWA)
  8. 10拨号拒绝远程连接_ADLS动态拨号vps常见的问题
  9. java中list去除空值_Java –从列表中删除所有空值
  10. 【渝粤题库】陕西师范大学201371 国际法学作业
  11. Redis工作笔记-主从复制Replication
  12. 学习 TList 类的实现[6]
  13. python的命名空间_python命名空间(namespace)
  14. KONG网关 — 插件开发
  15. 机器为什么可以学习(2)---一般化理论
  16. 看雪论坛论坛小测试的答案
  17. 恩智浦智能车电机驱动程序_恩智浦智能车电机驱动-HIP4082+LR7843
  18. 数据库锁机制1------共享锁
  19. C Function Complement
  20. IDEA修改静态资源(html)不重启,即时生效

热门文章

  1. vue-cli部署ngixs_Vue-cli项目部署到Nginx
  2. idea中lombok的使用
  3. 为什么MySQL数据库要用B+树存储索引
  4. idea首次创建新模块的详细操作
  5. 万事开头难,用HTML写的第一个界面,收获颇多
  6. 6、控件样式模板和使用
  7. error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“MTd_StaticDebug”...
  8. java 文件的编码 问题
  9. 【iOS开发每日小笔记(二)】gitHub上的开源“瀑布流”使用心得
  10. [转]字符串匹配那些事