当前位置: 首页 > 编程日记 > 正文

14/10/校内测试{天天考,丧心病狂}

1,
给定平面上n个OIer和n台电脑,每个OIer只能水平向右和竖直向下,找到一台电脑写代码,其花费为OIer与电脑之间的曼哈顿距离(|x_i-x_j|+|y_i-y_j|)。

求出使n个OIer均找到自己电脑的最小花费。
输入输出格式 Input/output
输入格式:
输入第1行有一个整数n,表示点的个数。
接下来有n行,第i行包括两个用空格隔开的整数x_i,y_i,表示第i个OIer的位置;
接下来有n行,第i行包括两个用空格隔开的整数x_i,y_i,表示第i台电脑的位置。
输出格式:
输出1个整数,表示最小花费。
输入输出样例 Sample input/output
输入样例:
2
1 2
1 3
2 2
2 3
输出样例:
2
说明 description
对于样例,第一个OIer寻找到第一台电脑,第二个OIer寻找到第二台电脑。
最小花费为|2-1|+|2-2|+|2-1|+|3-3|=2。

对于30%的数据,保证2≤n≤50;
对于60%的数据,保证2≤n≤10^3;
对于100%的数据,保证2≤n≤5×10^4,0≤x_i≤100000,0≤y_i≤100000。
对于100%的数据,保证一定有解。

可以发现,不管oier与computer的对应顺序如何,结果相同。
code:
var i,j,n:longint;
x1,x2,y1,y2:int64;
a,b:int64;
begin readln(n);
x1:=0; y1:=0;
x2:=0; y2:=0;
for i:=1 to n do
begin readln(a,b);
x1:=x1+a;
y1:=y1+b;
end;
for i:=1 to n do
begin readln(a,b);
x2:=x2+a;
y2:=y2+b;
end;
writeln(abs(x2-x1)+abs(y1-y2));
end.

2,
题目描述 Description
OI教练BG在n天中每天早晨会给wxjlzbcd发一套题,其中包含A_i道题目。如果不做的话,题目会累加到下一天。
wxjlzbcd每天能够刷掉的题目数量为B_i,BG的题目数量太少,可能不能满足wxjlzbcd每天刷题的需求,如果题目数量不够,wxjlzbcd当天就不会刷题,因为空出来的时间他有可能会浪费掉。

但是wxjlzbcd不想天天颓废,他想知道自己最多能有多少天有题刷。
 输入输出格式 Input/output
输入格式:
输入第1行为一个整数n,表示天数。
第2行包括n个数字A_i,表示BG n天中每天发的题目数A_i。
第3行包括n个数字B_i,表示wxjlzbcd n天中每天能刷掉的题目数B_i。
输出格式:
输出第1行为一个整数ans,表示天数。
输入输出样例 Sample input/output
样例测试点#1
输入样例: 
5
1 4 1 2 3
1 2 3 4 5
输出样例:
4
 说明 description
对于40%的数据,保证1≤n≤1000;
对于100%的数据,保证1≤n≤250000,0≤a_i≤10^9,0≤b_i≤10^9。

神奇的贪心:
如果能刷题的话就刷;否则就判断以前的每天中有没有需要题数比当前大的,然后还原,取当前的。
用堆维护。。。。。。。。
code:

var n,left,day,total:int64;
i:longint;
num:array[1..250000] of int64;
demand:array[1..250000] of int64;
heap:array[1..250000] of int64;
procedure go_up(st,j:longint);
var i,temp:longint;
begin while (j div 2)>=st do
begin i:=j>>1;
if demand[heap[j]]>demand[heap[i]]
then begin emp:=heap[i];
heap[i]:=heap[j];
heap[j]:=temp;
j:=i;
end
else break;
end;
end;

procedure go_down(i,ed:longint);
          var j,temp:longint;
begin
while (i<<1)<=ed do
begin
j:=i<<1;
if demand[heap[j+1]]>demand[heap[j]] then j:=j+1;
if demand[heap[j]]>demand[heap[i]]
then
begin
temp:=heap[i];
heap[i]:=heap[j];
heap[j]:=temp;
i:=j;
end
else
break;
end;
end;
begin readln(n);
for i:=1 to n do
read(num[i]);
readln;
for i:=1 to n do
read(demand[i]);
left:=0;
day:=0;
total:=0;
for i:=1 to n do
begin if left+num[i]>=demand[i]
then begin inc(day);
left:=left+num[i]-demand[i];
inc(total);
heap[total]:=i;
go_up(1,total);
end
else begin if demand[heap[1]]>=demand[i]
then begin left:=left+num[i]+demand[heap[1]]-demand[i];
heap[1]:=i;
go_down(1,total);
end
else left:=left+num[i];
end;
end;
write(day);
end.

3,
题目描述 Description
给出n个正整数,Archon、wxjlzbcd两个人轮流取任意数量的数,游戏的结束条件是n个数都被取走。
每次取数时,获得的得分为所取数中的最小值。
假设Archon先取数,Archon和wxjlzbcd的策略都是尽可能使得自己的得分减去对手的得分更大,请求出游戏结束时Archon的得分减去wxjlzbcd的得分为多少。
输入输出格式 Input/output
输入格式:
输入第1行为一个整数n,表示整数个数。
输入第2行为给出的n个整数a_i。
输出格式:
输出第1行为一个整数ans,表示Archon的得分减去wxjlzbcd的得分。
输入输出样例 Sample input/output
输入样例: 
3
1 3 1
输出样例:
2
 说明 description
对于样例,Archon取走第二个数,wxjlzbcd取走第一个和第三个数。答案为3-1=2。
对于30%的数据,1≤n≤10;
对于100%的数据,1≤n≤1000000,1≤a_i≤10^9。

设f[i]为剩最小的i个数时前手与后手的最大差值
此时,假设前手取了j个数{0<=j<=i-1}
前手的增加得分:init[j]
后手的增加得分:f[j-1];
f[i]:=max{init[j]-f[j-1]} (0<=j<=i-1)
f[0]:=1;

要先qsort
{在最外层时,不要用head<=tail
而是head<tail
}
因为1≤n≤1000000,则要在每一次求值时不断更新。{prevent TLE}
code:
var n:longint;
i,j,k:longint;
f,init:array[0..1000000]of longint;
max:longint;
procedure qsort(x,y:longint);
var head,tail,k,temp:longint;
begin head:=x; tail:=y;
k:=init[(head+tail) div 2];
while head<tail do
begin while init[head]<k do inc(head);
while k<init[tail] do dec(tail);
if head<=tail
then begin temp:=init[head];
init[head]:=init[tail];
init[tail]:=temp;
inc(head);
dec(tail);
end;
end;
if head<y then qsort(head,y);
if x<tail then qsort(x,tail);
end;
begin readln(n);
for i:=1 to n do
read(init[i]);
qsort(1,n);
f[0]:=0;
max:=init[1]-f[0];
for i:=1 to n-1 do
begin f[i]:=max;
if max<init[i+1]-f[i]
then max:=init[i+1]-f[i];
end;
f[n]:=max;
writeln(f[n]);
end.

转载于:https://www.cnblogs.com/spiderKK/p/4878347.html

相关文章:

android 图标拖动不了,拖动式选项卡(仿android) 添加了上下拉刷新后,下拉即刷新,而不是滚动到顶后再刷新,同时还想问一下正在刷新的图标怎么移到选项卡下...

这是我的HTML代码.mui-control-content {background-color: white;min-height: 600px;}.mui-control-content .mui-loading {margin-top: 50px;}新闻音乐sport第一个选项卡子项-1第一个选项卡子项-2第一个选项卡子项-3第一个选项卡子项-4第一个选项卡子项-5第一个选项卡子项-6第…

2022-2028年中国卫星互联网产业深度调研及投资前景预测报告(全卷)

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新&#xff08;交付时间约3个工作日&#xff09; 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国卫星互联网行业市场行业相关概述、中国卫星互联网行业市场行业运行环境、分析了中国卫星互…

Rhel6-heartbeat配置文档

系统环境: rhel6 x86_64 iptables and selinux disabled 主机: 192.168.122.119 server19.example.com 192.168.122.25 server25.example.com 所需的包:heartbeat-3.0.4-1.el6.x86_64.rpm heartbeat-libs-3.0.4-1.el6.x86_64.rpm heartbeat-devel-3.0.4-1.el6.x86_64.rpm 以下…

Java getBytes字符集问题

今天工作中又一次遇到了java字符集问题&#xff0c;这次是由getBytes方法导致的。 以前的时候&#xff0c;曾经很多次的解决过java字符集以及乱码的问题&#xff0c;以为对这块很了解了&#xff0c;至到今天的又一次深入的学习&#xff0c;才发现以前的认识当中存在的问题&am…

Blender未来科幻武器全流程制作视频教程

Blender 2.9 建模、UV、创建PBR纹理、照明和渲染全面学习视频教程 时长17h 30m 1280X720 MP4 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09; 大小&#xff1a;15.3G 含项目素材 Blender完成PBR艺术创作:科幻板条箱和炮塔 云桥网络 平台hu…

android fragmentpageradapter切换不更新,关于android:在FragmentPagerAdapter中更新当前片段...

我有一个带有标签指示器的viewPager。 ViewPager是带有FragmentPagerAdapter的setAdaper。我对FragmentPagerAdapter的内部工作原理了解甚少。我注意到即使邻居还不可见&#xff0c;邻居片段也会恢复(称为OnResume)。我将更新方法放在OnResume中&#xff0c;以为一旦片段是最新…

高级软件工程的第一次作业:回顾自己本科设计

本科毕业设计&#xff0c;是各位同学大学最后的一个成果&#xff0c;或是一个软件、或是一个游戏&#xff0c;但都体现了大家的辛勤和汗水。 在本课程学习之初&#xff0c;希望大家重拾个人之前的成果&#xff0c;并重新从软件工程的视角&#xff0c;探视设计中存在的不足&…

如何定位并优化慢查询Sql

根据慢日志定位慢查询SQL。 查询慢日志相关变量&#xff0c;并进行设置&#xff1a; 主要关注下述三个变量&#xff1a; long_query_time、show_query_log_file、show_query_log 慢查询sql会被记录到show_query_log_file 日志文件中。 show variables like %quer%; -- 查询…

介绍一个懒人创建springmvc项目的方法(二)

PS: 我是一个懒人,我懒得搭建项目连pom都不想去找,连web.xml都不想配置.所以就会想着找一些简便的办法,来适应我这种懒人. ---------------------------- 本人介绍的是用eclipse和sts插件创建springmvc项目,其他项目目前用不着,等用着的时候在研究吧. 前提: 1 eclipse已经配置好…

python之函数三装饰器

装饰器形成的过程 装饰器的作用&#xff1a;不想修改函数的调用方式&#xff0c;但是还想在原来的函数前后加功能 原则&#xff1a;开发封闭原则 开发&#xff1a;对扩展是开发的 封闭&#xff1a;对修改是封闭的 装饰器的固定模式 计算运行时间 1 import time2 # time.time()获…

Boom Library 93套影视游戏无损配乐音效素材合集包

Boom Library 93套影视游戏无损配乐音效素材合集包 素材压缩包大小共&#xff1a;851G 每个合集为独立压缩包 可选择性下载 云桥网络 平台获取合集包 01.BOOM Library Assault Weapons Bundle【枪战机枪音效】 02.BOOM Library Birds of Prey【猛禽类音效】 03.BOOM Librar…

将数据追加到html 表格中,将数据添加到数据表中

将数据添加到数据表中03/30/2017本文内容在创建 DataTable 并使用列和约束定义其结构之后&#xff0c;您可以将新的数据行添加到表中。 要添加新行&#xff0c;可将一个新变量声明为 DataRow 类型。 当调用方法时&#xff0c;将返回新的 DataRow 对象 NewRow 。 然后&#xff0…

WIN7源码安装Apache和PHP注意事项

安装注意事项。 你注意下下载PHP&#xff0c;Apache的网站&#xff0c;上面有提示要安装Visual C库的。 Apache2.4.4需要VC10库支持&#xff0c;Microsoft Visual C 2010 SP1 Redistributable Package (x64) PHP5.6需要VC11库支持&#xff0c;Visual C Redistributable for Vis…

2022-2028年中国卫星导航行业深度调研及投资前景预测报告

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新&#xff08;交付时间约3个工作日&#xff09; 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国卫星导航行业市场行业相关概述、中国卫星导航行业市场行业运行环境、分析了中国卫星导航行…

TypeKit ,use online fonts

TypeKit ,use online fonts 相信做UI的同学们经常会碰到字体的取舍问题为了页面的兼容性经常要写像下面的 <style type"text/css">body {font-family: "dejavu sans mono",Arial,Georgia,serif;} </style> 如果想用比较美观的不常见的字体只能…

详解mybatis的insert,update,delete返回值

为什么要提数据的事呢,是因为据说这个save返回的就是插入的数据的条数。但是遗憾的是,我们的这个user怎么能没有id呢,没有id有怎么查,怎么删,怎么改。进来的是没有id的user,出去的是有id的user,真是太厉害了,没想到不仅把返回值改变了,连参数都发生了改变,真是太神奇了。keyProperty=“id” 这是id就是绑定的id,那我就疑惑了,这绑定的哪个id啊。这样一搞,如果插入成功的话返回的是1,如果不成功的话返回的是-1。我让你删id是222222的,我还没创建呢,看你怎么删。

Java--Iterator迭代器(集合的遍历)

在调用Iterator的next方法之前,迭代器的索引位于第一个元素之前,指向第一个元素,当第一次调用迭代器的next方法时,返回第一个元素,然后迭代器的索引会向后移动一位,指向第二个元素,当再次调用next方法时,返回第二个元素,然后迭代器的索引会再向后移动一位,指向第三个元素,依此类推,直到hasNext方法返回false,表示到达了集合的末尾,终止对元素的遍历。

【Stream流】Sort排序详解

很多时候由于需求的复杂性,很多直接从数据库查出的数据并不能直接返回前端,需要进行处理,处理之后又需要排序,这时候一般都会使用Stream流的Sort排序。

使用CruiseControl.Net全面实现持续集成

持续集成想必大家很多人都听说过&#xff0c;甚至都实践过&#xff0c;最近我又一次亲历了一次持续集成&#xff0c;现将我的经验分享给大家。关于持续集成的理论在本文概不涉及&#xff0c;本文的主要目的是实战CruiseControl.Net&#xff0c;用它来全面实现持续集成。 在配置…

Blender三维建模和动画风格化的东方场景视频教程

Blender三维建模和动画风格化的东方场景-Blender 3D Modelling & Animating A Stylized Oriental Scene Blender三维建模和动画风格化的东方场景-Blender 3D Modelling & Animating A Stylized Oriental Scene 时长:23h 40m | .MP4 1280720&#xff0c;30 fps(r) | A…

一条直线上N个线段所覆盖的总长度

转自http://blog.csdn.net/bxyill/article/details/8962832 问题描述&#xff1a; 现有一直线&#xff0c;从原点到无穷大。 这条直线上有N个线段。线段可能相交。 问&#xff0c;N个线段总共覆盖了多长&#xff1f;(重复覆盖的地区只计算一次) 解题思路&#xff1a; 可以将每…

html根据字段制作曲线图,canvas制作简单的HTML图表,折线或者矩形统计(原创)

插件描述&#xff1a;canvas制作简单的HTML图表&#xff0c;折线或者矩形统计 使用canvas制作简单的HTML图表&#xff0c;折线或者矩形统计。使用canvas制作简单的HTML图表&#xff0c;折线或者矩形统计&#xff0c;简单而实用。图形由 Ctable类创建&#xff0c;类我已经写好了…

联合索引最左匹配原则成因

使用col3,col2,col1 顺序建立联合索引&#xff0c;通过col3的值建立一个btree &#xff0c;通过关键值去查找“Alice”&#xff0c;在叶子节点中找到两个“Alice”,那么“Alice”对于col2、col1对应的值&#xff0c;那么会对col2&#xff0c;col1分别进行一个有序的排列&#x…

二 IOC之PropertyPlaceholderConfigurer

2019独角兽企业重金招聘Python工程师标准>>> 老长一段时间没有看文档了&#xff0c;今天看到这个PropertyPlaceholderConfigurer有点意思&#xff0c;我于百忙之中抽出点时间&#xff0c;将这个点记录在这里&#xff0c;方便日后慢慢完善&#xff0c;慢慢深入。 因为…

关于Linux服务器磁盘空间占满问题的解决方法

下面给大家分享一篇关于Linux服务器磁盘占满问题解决方法&#xff08;/dev/sda3 满了&#xff09;&#xff0c;需要的的朋友参考下吧下面我们一起来看一篇关于Linux服务器磁盘占满问题解决&#xff08;/dev/sda3 满了&#xff09;&#xff0c;希望碰到此类问题的人能带来帮助。…

Maya人物角色行走动画制作视频教程

Maya人物角色行走动画制作视频教程 Maya人物角色行走动画制作视频教程 持续时间2h 57m 包含项目文件 1920X1080 MP4 大小解压后&#xff1a;2.27G 标题:技能分享–在Maya制作专业行走动画 云桥网络 平台 huo取 教程 信息: 这门课程是为初学者设计的&#xff0c;他们理解工作…

细数技术指标-[转载]

技术指标类别庞杂&#xff0c;要一一学全&#xff0c;基本不可能&#xff0c;也没有这个必要。我们只要掌握几个常用的指标&#xff0c;了解它们的原理&#xff0c;从而举一反三&#xff0c;就足够了。其实任何一种技术指标都是从形态、价格、量、时间这四项出发的&#xff0c;…

html无序列表的滚动效果,html无序列表标签和有序列表标签使用示例

原标题&#xff1a;html无序列表标签和有序列表标签使用示例一、上下层列表标签:&#xff1a;上层dt下层dd&#xff1a;封装的内容会被自动缩进的效果复制代码代码如下:运动户外板鞋篮球鞋足球鞋跑步鞋二、定义有序列表: 属性&#xff1a;type&#xff1a; 可以设置排序的样式 …

2022-2028年中国微藻行业市场调查研究及前瞻分析报告

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新&#xff08;交付时间约3个工作日&#xff09; 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国微藻行业市场行业相关概述、中国微藻行业市场行业运行环境、分析了中国微藻行业市场行业的…

cocos2dx 优化略记

缓存cache: 预加载资源到内存, 可以异步加载. 直接使用sprite:create()来加载资源的话, 有时候会发现, 在第一次运行动作的时候会变的很卡. 那是因为第一次要加载资源到内存, 加载资源到内存这个过程会比较的慢. 资源较大的话, 明显的会感觉到卡帧 批次渲染: 100个相同的…