[USACO 2017 Feb Gold] Tutorial

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/426847.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实例34:python

#练习函数调用。 #!/usr/bin/python -- coding: UTF-8 -- def hello_world(): print (‘hello world’) def three_hellos(): for i in range(3): hello_world() if name ‘main’: three_hellos() #1&#xff1a;__name__是一个变量。前后加了下划线是因为是因为这是系统…

计算机进去pe怎么设置用户,电脑密码怎么设置,教您设置电脑开机密码

为了保障电脑重要资料的安全&#xff0c;不被其他同事看到&#xff0c;我们都会给自己的电脑设置开机密码&#xff0c;有了开机密码就可以让别人不能直接使用我们的电脑了&#xff0c;那么电脑开机密码如何设置呢&#xff1f;下面小编给您耐心讲解下电脑开机密码设置方法。说到…

实例35:python

#文本颜色设置 #!/usr/bin/env python -- coding:utf-8 -- Python设置文本文字颜色 class bcolors: HEADER ‘\033[95m’ # pink OKBLUE ‘\033[94m’ # blue OKGREEN ‘\033[92m’ # green WARNING ‘\033[93m’ # yellow FAIL ‘\033[91m’ # red ENDC ‘\033[0m’…

哈佛大学计算机科学专,哈佛大学计算机科学专业

哈佛大学计算机科学专业通过哈佛文理研究生院申请并统一管理&#xff0c;要求申请者递交GRE成绩&#xff0c;但并无最低GRE分数要求。该项目设有BA/MS、PhD两个项目。所有PhD学生均可以获得全额奖学金&#xff0c;但不向硕士学生发放奖学金。哈佛大学计算机科学专业设置计算机架…

excel亮灯怎么设置_Excel表格技巧—怎么给表格设置密码

很多 Excel 表格里都有一些重要信息&#xff0c;但是当我们给别人发Excel表格时&#xff0c;别人可能会不小心或者故意更改表中数据。怎么才能避免这些表格的数据被更改呢&#xff1f;小编在这里和大家分享一个技巧&#xff1a;给表格设置密码&#xff01;如下图&#xff0c;假…

实例36:python

#题目&#xff1a;求100之内的素数。 #!/usr/bin/python -- coding: UTF-8 -- 输出指定范围内的素数 用户输入数据 lower int(input("输入区间最小值: ")) upper int(input("输入区间最大值: ")) for num in range(lower,upper 1): # 素数大于 1 …

南川职业学校计算机职业,2018年重庆五年制大专中职学校介绍——重庆市南川隆化职业中学校...

2021年高职单招升学一对一咨询高职单招王老师:17725052174(微信)2018年重庆五年制大专中职学校介绍——重庆市南川隆化职业中学校什么是五年制大专&#xff1a;五年制大专也称为五年高职或五年一贯制大专&#xff0c;是高等职业技术学院的一种招生模式&#xff0c;学制五年&…

normalize函数_提取棋盘格角点函数解析

点击上方“Qt学视觉”&#xff0c;选择“星标”公众号重磅干货&#xff0c;第一时间送达共同学习共同进步1、如何查阅OpenCV官方说明文档查阅地址&#xff1a;https://docs.opencv.org/4.3.0/我这里使用的是OpenCV4.3&#xff0c;所以我需要查阅的就是4.3版本的说明文档上图就是…

实例37:python

#对10个数进行排序。 #!/usr/bin/python -- coding: UTF-8 -- print (‘请输入10个数字:\n’) a[] for n in range(10): a.append(int(input(‘输入一个数字:\n’))) for i in range(0,9): mini for j in range(i1,10): if a[min]>a[j]: minj if min!i: ta[min] a[min]a[i…

阿联酋esma认证怎么做_行业视野 | 关于阿联酋eCall 的要求更新

行业视野 | 关于阿联酋eCall 的要求更新背景&#xff1a;根据2018年底阿联酋标准与计量局ESMA发布的通知&#xff0c;自2020年起所有出口到阿联酋的2021MY轻型车辆需安装eCall系统&#xff0c;并满足阿联酋相关法规要求。必维集团汽车服务部致力于为国内企业消除认证壁垒&#…

实例38:python

#题目&#xff1a;求一个3*3矩阵主对角线元素之和。 #程序分析&#xff1a;利用双重for循环控制输入二维数组&#xff0c;再将a[i][i]累加后输出。 #!/usr/bin/python -- coding: UTF-8 -- if name ‘main’: a [] sum 0.0 for i in range(3): a.append([]) for j in ran…

Bootstrap table后端分页(ssm版)

说明bootstrap table可以前端分页&#xff0c;也可以后端sql用limit分页。这里讲的是后端分页&#xff0c;即实用limit。性能较好&#xff0c;一般均用这种源码下载地址&#xff1a;https://git.oschina.net/dshvv/pagination_byjava.git该文主要讲后端分页&#xff1a;1、前端…

实例39:python

#题目&#xff1a;有一个已经排好序的数组。现输入一个数&#xff0c;要求按原来的规律将它插入数组中。 #程序分析&#xff1a;首先判断此数是否大于最后一个数&#xff0c;然后再考虑插入中间的数的情况&#xff0c;插入后此元素之后的数&#xff0c;依次后移一个位置。 #程…

6.0动态加载权限用PermissionGen

ndroid 6.0 新增加了运行时的动态添加权限&#xff0c;在此介绍一个第三方库&#xff0c;PermissionGen&#xff0c;可以很方便简洁的增加 6.0权限 首先给大家上 PermissionGen 库地址&#xff1a;https://github.com/lovedise/PermissionGen 下面给大家详细介绍它的使用&…

实例40:python

#将一个数组逆序输出 #!/usr/bin/python -- coding: UTF-8 -- a[0,1,2,3,4,5,6,7,8,9] for i in range(0,10): print(a.pop(),end’’)

康宁玻璃ct值计算公式_【钦州】CT室铅板生产厂家

【钦州】CT室铅板生产厂家石膏板等做复合层&#xff0c;整个工程下来人工费&#xff0c;造价费贵多了。而硫酸钡粉工艺造价费也走高&#xff1f;原因在于&#xff0c;它工艺本身就要考虑墙壁表面平整与否&#xff0c;干燥速度&#xff0c;气候&#xff0c;温度等诸多因素&#…

实例41:python

#模仿静态变量的用法。 #!/usr/bin/python -- coding: UTF-8 -- def varfunc(): var 0 print (‘var %d’ % var) var 1 if name ‘main’: for i in range(3): varfunc() 类的属性 作为类的一个属性吧 class Static: StaticVar 5 def varfunc(self): self.StaticVar…

实例42:python

#题目&#xff1a;学习使用auto定义变量的用法。 #!/usr/bin/python -- coding: UTF-8 -- num 2 def autofunc(): num 1 print (‘internal block num %d’% num) num 1 for i in range(3): print (‘The num %d’ % num) num 1 autofunc()

实例43:python

#模仿静态变量(static)另一案例。 #!/usr/bin/python -- coding: UTF-8 -- class Num: nNum 1 def inc(self): self.nNum 1 print (‘nNum %d’ % self.nNum) if name ‘main’: nNum 2 inst Num() for i in range(3): nNum 1 print (‘The num %d’ % nNum) inst.i…

mac使用Shell(终端)SSH连接远程服务器

前提&#xff1a;要有你需要连接的服务器的ip&#xff0c;端口号&#xff0c;服务器上的账户和密码1、首先打开终端&#xff0c;然后输入sudo su - 回车进入根目录2、然后输入&#xff1a;ssh -p 端口号 服务器用户名ip &#xff08;例如ssh -p 22 userkunyu119.29.37.63&#…