a.链接:https://codingcompetitions.withgoogle.com/kickstart/round/0000000000050e01/00000000000698d6

题意:有n个学生,要从里面选出p个来。每一个学生都有一个能力值。

要求你选出来的一组学生能力是相同的,有的学生能力比较低,所以需要花费你的时间来提升学生能力,一个学生提升1个能力值需要1小时。

求最低花费。

方法:因为只能提高学生的能力值,不能降低,所以一定是选择能力值挨着的那些。将数组排序,然后计算前p个花费,再将窗口往后移动...分别计算。

#include <iostream>
#include <climits>
#include <algorithm>
#include <vector> using namespace std; static auto x = [](){
std::ios::sync_with_stdio(false);
std::cin.tie(NULL);
std::cout.tie(NULL);
}; int main(){
int t,n,p; cin>>t;
int tmp=;
int ii=;
while(ii<t){
cin>>n>>p;
vector<int> si;
for(int i=;i<n;i++){
cin>>tmp;
si.push_back(tmp);
}
if(p==){
cout<<"Case #"<<++ii<<": "<<<<endl;
continue;
}
sort(si.begin(),si.end());
int last=;
int minn=INT_MAX;
for(int i=;(i+p-)<n;i++){
if(i==){
for(int j=;j<p;j++){
last += si[p-]-si[j];
}
}else{
last-=si[i+p-]-si[i-];
last+=(si[i+p-]-si[i+p-])*(p-);
}
minn=min(minn,last);
}
cout<<"Case #"<<++ii<<": "<<minn<<endl;
}
return ;
}

b. https://codingcompetitions.withgoogle.com/kickstart/round/0000000000050e01/000000000006987d

没做出来啊,真是菜的不行....连题解都看不懂!!!

题意:r*c的方格,其中1表示邮局,0表示空地。每个空地都有个最短运输时间x(是所有的1到这个点的曼哈顿距离中最小的),总运输时间是每个空地最短运输时间最大的那个。让你添加一个邮局,求最小的总运输时间。(应该是这个意思吧。。。)

代码错误,只是暂时记录。

#include <iostream>
#include <climits>
#include <algorithm>
#include <vector> using namespace std; static auto x = [](){
std::ios::sync_with_stdio(false);
std::cin.tie(NULL);
std::cout.tie(NULL);
}; typedef struct locaa{
int x,y;
} loca; int main(){
int t,r,c; cin>>t;
int ii=;
char charr='';
while(ii<t){
vector<loca> yi,ling;
vector<int> lingdis;
cin>>r>>c;
for(int i=;i<r;i++){
for(int j=;j<c;j++){
cin>>charr;
if(charr==''){
ling.push_back({i,j});
lingdis.push_back(INT_MAX);
}else{
yi.push_back({i,j});
}
}
}
if(ling.size()==){
cout<<"Case #"<<++ii<<": "<<<<endl;
continue;
}
if(ling.size()==r*c){
int midx,midy;
if(r%==){
midx=(r+)/;
}else{
midx=r/;
}
if(c%==){
midy=(c+)/;
}else{
midy=c/;
}
int mhd=r-midx+c-midy;
cout<<"Case #"<<++ii<<": "<<mhd<<endl;
continue;
}
int maxx=INT_MIN;
int x,y;
for(int i=;i<ling.size();i++){
int minn=INT_MAX;
for(int j=;j<yi.size();j++){
int dis=abs(ling[i].x-yi[j].x)+abs(ling[i].y-yi[j].y);
minn=min(dis,minn);
}
lingdis[i]=minn;
if(minn>maxx){
maxx=minn;
x=ling[i].x;
y=ling[i].y;
}
}
yi.push_back({x,y});
int res=INT_MIN;
for(int i=;i<ling.size();i++){
lingdis[i]=min(lingdis[i],abs(ling[i].x-x)+abs(ling[i].y-y));
res=max(res,lingdis[i]);
} cout<<"Case #"<<++ii<<": "<<res<<endl;
}
return ;
}
/*
3
3 3
101
000
101
1 2
11
5 5
10001
00000
00000
00000
10001 */

Round A - Kick Start 2019的更多相关文章

  1. Google Kick Start 2019 C轮 第一题 Wiggle Walk 题解

    Google Kick Start 2019 C轮 第一题 Wiggle Walk 题解 题目地址:https://codingcompetitions.withgoogle.com/kickstar ...

  2. HYNB Round 15: PKU Campus 2019

    HYNB Round 15: PKU Campus 2019 C. Parade 题意 将平面上n*2个点安排在长度为n的两行上. 做法 首先可以忽略每个点之间的影响,只用考虑匹配即可 然后把所以点归 ...

  3. kick start 2019 round D T3题解

    ---恢复内容开始--- 题目大意:共有N个房子,每个房子都有各自的坐标X[i],占据每个房子需要一定花费C[i].现在需要选择K个房子作为仓库,1个房子作为商店(与题目不同,概念一样),由于仓库到房 ...

  4. kick start 2019 round D T2题解

    题目大意:由N个房子围成一个环,G个人分别顺时针/逆时针在房子上走,一共走M分钟,每分钟结束,每个人顺/逆时针走到相邻的房子.对于每个房子都会记录最后时刻到达的人(可能是一群人).最终输出每个人会被几 ...

  5. Kick Start 2019 Round A Contention

    $\DeclareMathOperator*{\argmax}{arg\,max}$ 题目链接 题目大意 一排 $N$ 个座位,从左到右编号 $1$ 到 $N$ . 有 $Q$ 个预定座位的请求,第 ...

  6. Kick Start 2019 Round H. Elevanagram

    设共有 $N = \sum_{i=1}^{9} A_i$ 个数字.先把 $N$ 个数字任意分成两组 $A$ 和 $B$,$A$ 中有 $N_A = \floor{N/2}$ 个数字,$B$ 中有 $N ...

  7. Kick Start 2019 Round A Parcels

    题目大意 $R \times C$ 的网格,格子间的距离取曼哈顿距离.有些格子是邮局.现在可以把至多一个不是邮局的格子变成邮局,问每个格子到最近的邮局的曼哈顿距离的最大值最小是多少. 数据范围 $ 1 ...

  8. Kick Start 2019 Round B Energy Stones

    对我很有启发的一道题. 这道题的解法中最有思维难度的 observation 是 For simplicity, we will assume that we never eat a stone wi ...

  9. 【DP 好题】Kick Start 2019 Round C Catch Some

    题目链接 题目大意 在一条数轴上住着 $N$ 条狗和一个动物研究者 Bundle.Bundle 的坐标是 0,狗的坐标都是正整数,可能有多条狗住在同一个位置.每条狗都有一个颜色.Bundle 需要观测 ...

随机推荐

  1. python使用pip 18以上版本离线安装package

    在内网办公环境,常常需要使用离线安装python的软件包. 一般都会先在互联网的电脑上下载,再拷贝到内网办公机器上进行离线安装. 一般来说,我是这样做的: 1.拷贝和外网电脑上版本一致,且32位或64 ...

  2. 龙芯yl8089无声音的解决方案

    网上搜索到的解决方法都是卸载pulseaudio,但这种方法比较暴力不能从根本上解决问题. 经过一段时间的排查,我发现最终问题出现在resample-method上. 由于内核内CS5536 AC97 ...

  3. 《Linux就该这么学》 - 必读的红帽系统与红帽linux认证自学手册

    <Linux就该这么学>   本书作者刘遄从事于linux运维技术行业,较早时因兴趣的驱使接触到了Linux系统并开始学习. 已在2012年考下红帽工程师RHCE_6,今年又分别考下RHC ...

  4. vscode插件解析-BookMark

    BookMark (书签):在编辑器中标记行并轻松跳转到它们. commands 书签:Toggle   标记/取消标记带书签的行 书签:Jump to Next  将光标向前移动到下面的书签 书签: ...

  5. 4.1 ORACLE DATAGUARD SWITCHOVER 步骤

    验证主库是否能执行角色转换到备库 原主库执行 SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE; SWITCHOVER_STATUS --------- ...

  6. CentOS7没有eth0网卡

    本人刚刚进去运维圈,写写博客,记录一下自己日常工作学习中的各种问题,方便自己,方便他人. CentOS7系统安装完毕之后,输入ifconfig命令发现没有eth0,不符合我们的习惯.而且也无法远程ss ...

  7. BFC知识点概括与总结

    什么是BFC?如何生成一个BFC?BFC有什么作用? 一:什么是BFC? 首先了解CSS中两个概念:box和formatting context. Box:CSS布局中的基本单位.一个页面由多个box ...

  8. 2018-2019-2 网络对抗技术 20165328 Exp4 恶意代码分析

    实验内容: 系统运行监控(2分) 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里.运行一段时间并分析该文件,综述一下分析结果.目标就是找出所有连网的程序,连了哪里,大约 ...

  9. 爬虫-request和BeautifulSoup模块

    requests简介 Python标准库中提供了:urllib.urllib2.httplib等模块以供Http请求,但是,它的 API 太渣了.它是为另一个时代.另一个互联网所创建的.它需要巨量的工 ...

  10. 下拉框、下拉控件之Select2。自动补全的使用

    参考链接: 参考一:https://blog.csdn.net/weixin_36146275/article/details/79336158 参考二:https://www.cnblogs.com ...