2020 年百度之星·程序设计大赛部分题解
目录
Dec
Covid
Car
Intersection
Dec
2020 年百度之星·程序设计大赛 - 初赛一
HUD 6745
题解:
线性DP;f(i,j) 表示从i开始减,从j开始减时互质的次数最多是多少;
转移状态为 f(i , j) = max( f(i-1,j) ,f( i, j-1) ) +(__gcd(i,j)==1 ? 1 : 0)
#include <bits/stdc++.h>
using namespace std;
const int N=1011;
int f[N][N];
int main()
{int t;cin >>t;for(int i=1;i<=1010;i++){for(int j=1;j<=1010;j++){f[i][j]=max(f[i-1][j],f[i][j-1])+(__gcd(i,j)==1 ? 1 : 0);}}while(t--){int a,b;scanf("%d %d",&a,&b);printf("%d\n",f[a][b]);}
}
Covid
HDU6777
题解
官方题解是:
其实,暴力可以直接做;把 所有出现在某一时刻某一地点的所有人放在一起;然后按照时间的流逝暴力枚举所有的状态,只要此时此地中有一个人有荧光,那么给所有人都标记即可;
#include <bits/stdc++.h>
using namespace std;
const int N=20005;
int a[N];
int main()
{int t ;cin >>t;while(t--){vector<int> pos[120][15];memset(a,0,sizeof a);a[1]=1;int n;cin >>n;for(int i=1;i<=n;i++){int len;cin >>len;while(len--){int t,p;cin >>t>>p;pos[t][p].push_back(i);}}for(int i=1;i<=110;i++){for(int k=1;k<=10;k++){for(auto j : pos[i][k]){if(a[j]==1){for(auto p : pos[i][k]) a[p]=1;break;}}}}for(int i=1;i<=n;i++){if(a[i]){/*最后输出,貌似程序不卡这个格式的空格*/if(i==1)printf("%d",i);elseprintf(" %d",i);}}printf("\n");}
}
Car
HDU6778
题解:
官方题解
实际上不用二分,直接状压DP也能做;
f(i,state) 表示前i天,尾号被限制的总状态为 state时,未被限号的车的数量的最小值
状态转移就是首先根据前i-1的状态j,枚举第i天的合法限号状态k,然后取前i-1天限号状态的最大值,前i天的最小值即可;
#include <bits/stdc++.h>
using namespace std;
const int N=20;
int a[N],n;
int f[6][1<<10+7];
int get(int x)
{int res=n;for(int i=0;i<10;i++){if(x>>i&1) res-=a[i]; }return res;
}
int main()
{int t;cin >>t;while(t--){memset(a,0,sizeof a);memset(f,0x3f,sizeof f);cin >>n;for(int i=0;i<n;i++) {int x;scanf("%d",&x);a[x%10]++;}for(int i=0;i<1024;i++) f[1][i]=get(i);for(int i=2;i<=5;i++){for(int j=0;j<1024;j++){for(int k=0;k<1024;k++){if(j&k) continue;f[i][j|k]=min(f[i][j|k],max(f[i-1][j],get(k))); }}}int ans=0x3f3f3f3f;for(int i=0;i<1024;i++) ans=min(ans,f[5][i]);cout <<ans<<endl;}return 0;
}
//10101100 k
//01010000 j
Intersection
HDU6786
题解
如果不考虑撞车,那么所有车一定是走左右向靠下的车道最优。从最 右下角的车辆位置枚举开始只要存在两个车的位置如下,那么就会出现撞车的情况,这时只能让一个车先走了,那么时间就+1;
#include <bits/stdc++.h>
using namespace std;
map<pair<int,int>,int > mp;
int x[100000],y[100010];
struct node
{int x,y;
}a[100000];
int cmp(node a,node b) {if(a.y == b.y) return a.x > b.x;return a.y > b.y;
}
int main()
{int t;scanf("%d",&t);while(t--){mp.clear(); int n;cin >>n;int ans=0;for(int i=0;i<n;i++){scanf("%d %d",&a[i].x,&a[i].y);mp[{a[i].x,a[i].y}]++;ans=max(ans,a[i].x+a[i].y); }sort(a ,a + n,cmp);for(int i=0;i<n;i++){int num=a[i].x+a[i].y;if(mp[{a[i].x+1,a[i].y-1}]) num++; ans=max(ans,num);}printf("%d\n",ans);}return 0;
}
2020 年百度之星·程序设计大赛部分题解相关推荐
- 2020 年百度之星·程序设计大赛 · 官方题解汇总
1.测试赛 2.初赛一 留个备份,方便以后找 3.初赛二 4.初赛三 5.复赛
- 2020年百度之星·程序设计大赛-初赛一
Pro.ID 1001 Drink 题解 1002 GPA 题解 1003 Dec 题解 1004 Civilization 1005 Rotate 题解 1006 Matrix 1007 Mosqu ...
- 2020 年百度之星·程序设计大赛 - 复赛 1002 Binary Addition
problem Binary Addition Accepts: 851 Submissions: 3320 Time Limit: 2000/1000 MS (Java/Others) Memory ...
- 2020 年百度之星·程序设计大赛 - 复赛 1001Battle for Wosneth
problem Battle for Wosneth Accepts: 1174 Submissions: 5432 Time Limit: 2000/1000 MS (Java/Others) Me ...
- 2020 年百度之星·程序设计大赛 - 初赛一 Civilization BFS广搜
problem Civilization Accepts: 619 Submissions: 2182 Time Limit: 6000/3000 MS (Java/Others) Memory Li ...
- 2020 年百度之星·程序设计大赛 - 初赛一 Dec 二维DP,预处理
problem Dec Accepts: 1284 Submissions: 4572 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 327 ...
- 2020 年百度之星·程序设计大赛 - 初赛一 GPA DFS深搜
problem GPA Accepts: 1554 Submissions: 3947 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 327 ...
- 2020 年百度之星·程序设计大赛 - 初赛一 Drink
Problem Description 我们有 nn 种不同的饮料,每种饮料有无限多瓶,第 ii 种饮料一瓶提供 x[i]x[i] 毫升的水分,包含 y[i]y[i] 卡路里. 现在我们需要选择一种饮 ...
- 2020 年百度之星·程序设计大赛 - 测试赛1001 度度熊保护村庄
Problem Description 哗啦啦村袭击了喵哈哈村! 度度熊为了拯救喵哈哈村,带着自己的伙伴去救援喵哈哈村去了!度度熊与伙伴们很快的就过来占据了喵哈哈村的各个军事要地,牢牢的守住了喵哈哈村 ...
最新文章
- Spring Hibernate Mybatis配置详解
- 判断一个数是否是2的倍数----------面试算法
- 黑马程序员——Java正则表达式
- 【SSM框架系列】SpringMVC的请求和响应
- 双字节数据 先低后高_1.4 C++数据类型
- 基于RT-Thread实现的小游戏(贪吃蛇、俄罗斯方块)
- vrep中remoteAPI 编程中遇到的没有预留命令执行时间遇到的问题
- Errors reported here must be corrected before the service can be started.
- 创建maven parent project module project
- 【渝粤教育】电大中专药物化学基础作业 题库
- Go语言实战 (William,Kennedy 等著)
- mount failed: mount failed: exit status 1
- 【C语言】判断素数的函数
- 简单实用口才训练方法集
- C语言中时间相关函数总结
- CleanMyMacX4.15好用吗?CleanMyMac X2023安全吗?
- 用AkShare获取沪深京A股所有股票历史数据
- 4399U3D笔试题
- 揭秘世上唯一无癌国家吃什么?原来肿瘤也有克星
- 安装系列—火狐浏览器添加组件‘firebug’却无法找到?