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

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

  1. 月薪14.5K...转行测试还是考公考研?律师小哥是这样选择的...

    "每个阶段的自己,都是不一样的". 在成功转行后,又一次看到这句话,此刻的心境却已截然不同,三个月的学习,不仅是我事业上的一大转折,更是让我在心性上磨练了一番,从开始的犹豫踌躇,到 ...

  2. 服务器集成显卡性能,Win8.1与Ubuntu 14.10:集成显卡性能PK

    1OpenArena测试上不分伯仲 对于一些用户而言,将最新的开源Linux系统与Windows平台在英特尔图形驱动程序.OpenGL驱动程序进行性能测试对比是一大关注点.近日,phoronix测试网 ...

  3. linux14.10硬盘安装,Windows 10下硬盘安装Ubuntu 14.10图文教程

    著名的Linux发行版 Ubuntu 系统已经释出最新的 14.10 版,同时大家也可能不知道其实它已经十岁了.与半年前的14.10相比,这次Ubuntu 14.10系统升级的修改幅度很小,外观界面几 ...

  4. ubuntu14.10 linux-header更新,Ubuntu 14.04 怎样升级到 Ubuntu 14.10

    Ubuntu 14.10 Utopic Unicorn 将在10月23日正式发布,9月25日最终测试版本已经发布,Ubuntu 14.10 RC 候选版本也将在10月16日发布,一周之后正式版本发布. ...

  5. linux14.10硬盘安装,U盘安装Ubuntu 14.10 Windows 7硬盘安装Ubuntu 14.10图文教程

    类型:网络电视大小:1.5M语言:中文 评分:6.6 标签: 立即下载 Ubuntu 14.10 采用的系统内核是Linux 3.16,并且按惯例进行了定制.Unity桌面环境也升级到了7.3.系统自 ...

  6. 安装Ubuntu 14.10后要做的事(下)—— 开发工具篇

    1 完善GCC环境 安装g++编译器 命令: sudo apt-get install build-essential build-essential是一套完整的软件包,它提供了编译程序必需的软件包列 ...

  7. 计算机学业水平测试基础知识,全国通用信息技术学业水平测试必考知识要点(一)...

    高中信息技术学业水平测试必考知识要点(一) 全国通用信息技术学业水平测试必考知识要点(一) 一.信息技术基础(书本第一章和第七章内容) 1.能够判断哪些是信息 判断信息的方法: (1)消息 (2)载体 ...

  8. linux notepad 安装教程,Ubuntu 15.04/14.10/14.04下安装和卸载Notepad++(notepadqq)

    Ubuntu下的Notepad++也就是notepadqq,比较适合刚从Windows平台转移到Linux平台的用户使用,如果你一直在Windows下使用的是nodepad++,那么推荐你在Linux ...

  9. Python 经典模块可能都学过,10道题测试你会不会用?

    Python 作为 2021 年度最受欢迎的编程语言,备受众人瞩目,也很受新手小白喜爱.除此之外,它在很多领域都发挥其作用,比如大数据.无人驾驶.Web 开发等等. [敲重点] 蓝桥云课即将在 202 ...

最新文章

  1. html调后台接口_前后端分离之让前端开发脱离接口束缚(mock)
  2. SAP WM 共用同一个仓库号的2个存储地点之间转库
  3. “大型票务系统”和“实物电商系统”的数据库选型
  4. python3.6.3安装-CentOS6.8安装Python3.6.3
  5. 段式存储、页式存储。
  6. 【转】Phong和Blinn-Phong光照模型
  7. linux安全策略与实例pdf,实验一:Linux用户管理与安全策略.pdf
  8. 关于DNS服务中查询域名的命令
  9. linux crontab怎么写,linux定时任务crontab
  10. php解析xml数据格式,PHP解析xml格式数据工具类实例分享
  11. VS2008无法下断点调试的原因
  12. postman 字符串中有冒号_【接口测试】Postman入门09 Postman获取HTTP请求
  13. 2018春招-赛码网-例题-水仙花数
  14. 计算机机考试卷分析,考试试卷分析与反思
  15. itextpdf加盖章
  16. 农村产权交易平台上线,大力发展村金融经济
  17. 语法歧义现象(一):牛津逗号(Oxford Comma)
  18. CISCO 思科2960G CONSOLE口越过登陆账号密码访问
  19. 一文入门 Spring Cloud Tencent
  20. 谭民机器人_中国科学院大学

热门文章

  1. 伍六七带你学算法 进阶篇-生命游戏
  2. 【JavaWeb】servlet与http请求协议
  3. 文化内涵和历史深度:PC
  4. PyTorch官方中文文档:torch.optim 优化器参数
  5. LeetCode简单题之学生出勤记录 I
  6. 【快速上手mac必备】常用优质mac软件推荐(音视频、办公、软件开发、辅助工具、系统管理、云存储)
  7. 2022年新能源汽车产业集群百人会
  8. 几何深度学习(Geometric Deep Learning)技术
  9. GPU指令集技术分析
  10. VsCode允许JSON文件注释