[十一集训] Day1 (2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018))
A Altruistic Amphibians
原题
题目大意:
n只青蛙在高度为d的井中,每只有跳跃距离、重量和高度,每只青蛙可以借助跳到别的青蛙的背上而跳出井,每只青蛙能承受的最大重量是自身重量,求最多能出去多少青蛙。
题解:
因为青蛙能承受的重量小于等于自身重量,所以重的青蛙无法依靠轻的青蛙出井。因此,将青蛙按照重量降序排序,每个青蛙只能依靠排名在前的青蛙,问题便转化为01背包。dp[i][j]表示到第i个青蛙重量为j到达的最大高度,转移方程即为dp[i][j]=max(dp[i-1][j],dp[i-1][min(j+a[i].w,1e8)]).
代码:
#include<cstdio>
#include<algorithm>
#define N 100010
#define M 100000010
using namespace std;
int n,d,ans,dp[M];
struct hhh
{
int l,w,h;
bool operator < (const hhh &b) const
{
return w>b.w;
}
}a[N];
int read()
{
int ans=0,op=1;
char c=getchar();
for (;(c<'0' || c>'9') && c!='-';c=getchar()) ;
if (c=='-') c=getchar(),op=-1;
for (;c>='0' && c<='9';c=getchar()) ans*=10,ans+=c^48;
return ans*op;
}
int main()
{
n=read();d=read();
for (int i=1;i<=n;i++)
{
a[i].l=read();
a[i].w=read();
a[i].h=read();
}
sort(a+1,a+n+1);
for (int i=1;i<=n;i++)
{
if (dp[a[i].w]+a[i].l>d) ans++;
for (int j=1;j<a[i].w;j++)
dp[j]=max(dp[j],dp[min(j+a[i].w,M-1)]+a[i].h);
}
printf("%d\n",ans);
return 0;
}
B Baby Bites
原题
签到题
#include<cstdio>
#include<cstring>
using namespace std;
int n,ANS=1,t;
char s[10];
int read()
{
int ans=0,op=1;
char c=getchar();
for (;(c<'0' || c>'9') && c!='-';c=getchar()) ;
if (c=='-') op=-1,c=getchar();
for (;c>='0' && c<='9';c=getchar()) ans*=10,ans+=c^48;
return ans*op;
}
bool isnumber()
{
if (s[1]>='0' && s[1]<='9') return 1;
return 0;
}
int change()
{
int ans=0,l;
l=strlen(s+1);
for (int i=1;i<=l;i++)
ans*=10,ans+=s[i]^48;
return ans;
}
int main()
{
n=read();
for (int i=1,j;i<=n;i++)
{
++t;
scanf("%s",s+1);
if (isnumber())
{
j=change();
ANS&=(j==t);
}
}
if (ANS) printf("makes sense");
else printf("something is fishy");
return 0;
}
C Code Cleanups
原题
题目大意:
给出一年内的n个日期,在每个日期会投放一个垃圾,垃圾拥有一个肮脏值,其每天增加一,需要在总肮脏值小于等于20时进行清理(清理时只清理之前的,不清理当天的)。且在最后一天结束时必须为干净的。问最少清理几次。
题解:
暴力枚举
#include<cstdio>
#define N 400
using namespace std;
int n,d,a[N],l=1,r=1,now,ans;
//[l,r)
int read()
{
int ans=0,op=1;
char c=getchar();
for (;(c<'0' || c>'9') && c!='-';c=getchar()) ;
if (c=='-') op=-1,c=getchar();
for (;c>='0' && c<='9';c=getchar()) ans*=10,ans+=c^48;
return ans*op;
}
int main()
{
n=read();
for (int i=1;i<=n;i++) a[i]=read();
for (int i=1;i<=365;i++)
{
if (a[r]==i) r++;
if (now+r-l>=20) ans++,now=0,l=r;
else now+=r-l;
}
if (now) ans++;
printf("%d\n",ans);
return 0;
}
[十一集训] Day1 (2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018))的更多相关文章
- (寒假GYM开黑)2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018)
layout: post title: 2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018) author: &qu ...
- 2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018)- D. Delivery Delays -二分+最短路+枚举
2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018)- D. Delivery Delays -二分+最短路+枚举 ...
- 2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018)-E. Explosion Exploit-概率+状压dp
2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018)-E. Explosion Exploit-概率+状压dp [P ...
- 2019年湖南多校第一场||2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018)
第一场多校就打的这么惨,只能说自己太菜了,还需继续努力啊- 题目链接: GYM链接:https://codeforces.com/gym/101933 CSU链接:http://acm.csu.edu ...
- 2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018) - 4.28
赛后补了几道 赛中我就写了两个... A - Altruistic AmphibiansGym - 101933A 看了眼榜没几个人做.就没看. 最后发现就是一个DP(但是我觉得复杂度有点迷) 题意: ...
- Gym .101933 Nordic Collegiate Programming Contest (NCPC 2018) (寒假gym自训第四场)
(本套题算是比较温和吧,就是罚时有点高. B .Baby Bites 题意:给出一个婴儿给出的数组,有一些数字听不清楚,让你还原,问它是否是一个从1开始的一次增加的数组. 思路:从左往右依次固定,看是 ...
- 2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018) Solution
A. Altruistic Amphibians Upsolved. 题意: $有n只青蛙,其属性用三元组表示 <l_i, w_i, h_i> l_i是它能跳的高度,w_i是它的体重,h_ ...
- 2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018) D. Delivery Delays (二分+最短路+DP)
题目链接:https://codeforc.es/gym/101933/problem/D 题意:地图上有 n 个位置和 m 条边,每条边连接 u.v 且有一个距离 w,一共有 k 个询问,每个询问表 ...
- 2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018) A. Altruistic Amphibians (DP)
题目链接:https://codeforc.es/gym/101933/problem/A 题意:有 n 只青蛙在一个坑里面,要求可以跳出坑的青蛙的最大数量.每个青蛙有 3 种属性:l 为青蛙一次可以 ...
随机推荐
- JS优化常用片断
防抖debounce装饰器 在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时. function debounce(func, delay) { let isCooldown = fa ...
- pgloader 学习(一)支持的特性
pgloader 是一个不错的多种格式数据同步到pg 的工具,pgloader 使用postrgresql 的copy 协议进行高效的数据同步处理 特性 加载文件到内容pg 多种数据源格式的支持 cs ...
- CMD下文件操作
CMD下常用文件操作指令 1.输入盘符 如C: 然后回车,相当于进了C盘(c盘一般进的是桌面目录) 2.输入 cd 目录名 然后回车(目录名是c盘中的一级目录名,也可为c盘中的目录路径).如cd mm ...
- 第06组 Beta冲刺(2/4)
队名:福大帮 组长博客链接:https://www.cnblogs.com/mhq-mhq/p/11990570.html 作业博客 : https://edu.cnblogs.com/campus/ ...
- MySQL免安装配置步骤
此方式为直接解压压缩包安装MySQL 1.下载相关压缩包 官网下载地址:https://dev.mysql.com/downloads/mysql/ 下载后将压缩包解压至自己想要的文件路径即可 2.新 ...
- curl抓取页面时遇到重定向的解决方法
用php的curl抓取网页遇到了问题,为阐述方便,将代码简化如下: <?php function curlGet($url) { $ch = curl_init(); curl_setopt($ ...
- python 玩爬虫安装了一大堆第三方库
之前就听说过爬虫,感觉很复杂的样子,但是看到python代码很简短.由于本机已经安装了python2.7 所以就拿来py 文件跑一下想看看效果. 结果各种代码错误.然后根据每个错误去下载对应的依赖项. ...
- jmeter 内存溢出原因及解决方法
jmeter是一个java开发的开源性能测试工具,在性能测试中可支持模拟并发压测,但有时候当模拟并发请求较大或者脚本运行时间较长时,压力机会出现卡顿甚至报异常————内存溢出, 这里就介绍下如何解决内 ...
- web服务器请求代理方式
1 通信数据转发程序:代理.网关.隧道 代理:是一种有转发功能的应用程序,他扮演了位于服务器和客户端“中间人”的角色,接收客户端发送的请求并转发给服务器:同时也接收服务器返回的响应并转发给客户端. 使 ...
- maven引入CDH依赖包
1. POM文件加入仓库 注意:id要和仓库配置中的id一致. <repositories> <repository> <id>cloudera</id> ...