- 1、本文档共28页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2011年北京市海淀区信息学竞赛中学组解题报告
2011年北京市海淀区信息学竞赛中学组解题报告
NB2011初中组解题报告
NB2011初中组 T1 斯诺克 snooker
此题是模拟,基本按题目说的写就好。
需要注意的几点是:
1.打错的球不影响任何状态改变
2.打完15个红球之后特判
3.给对手加分时判断球分是否小于4
4.注意两人切换时除了击球次数重新算 其他状态均不变
代码: /gmtWn
var
i,rnum,q:longint;
n,s:array[1..2] of longint;
procedure deal(x:longint);
var
i,a:longint;
begin
for i:=1 to n[x] do
begin
read(a);
if a=0 then
inc(s[3-x],4)
else
if rnum15 then
begin
if odd(i) then
begin
if a1 then
begin
if a4 then
inc(s[3-x],4)
else
inc(s[3-x],a);
end
else
begin
inc(s[x],1);
inc(rnum);
end;
end
else
begin
if a=1 then
inc(s[3-x],4)
else
inc(s[x],a);
end;
end
else
begin
if q=-1 then
begin
inc(s[x],a);
q:=1;
end
else
begin
if a=q+1 then
begin
inc(s[x],a);
q:=a;
end
else
if a4 then
inc(s[3-x],4)
else
inc(s[3-x],a);
end;
end;
end;
end;
begin
assign(input,#39;snooker.in#39;);reset(input);
assign(output,#39;snooker.out#39;);rewrite(output);
read(n[1],n[2]);
s[1]:=0;s[2]:=0;
rnum:=0;q:=-1;
deal(1);deal(2);
writeln(s[1],#39; #39;,s[2]);
close(input);close(output);
end.
题解:
此题显然是排序+统计
首先观察“牛人”的定义:对于人A,如果其它n-1个人中,没有人的智力值和能力值都比A高,则我们称A为“牛人”。
我们很容易得到一个等价的定义是:对于人A,在如果智力值比A高的人中没有一个体力值比A高,那么A为“牛人”。
于是我们得到如下一个算法:
首先对所有人的智力值排序
然后按智力值从大到小考虑每个人 将他的体力值(记为t)与已考虑过的人(即智力值大于此人的人)的体力值的最大值(记为max)比较,若t=max 那么说明这个人是“牛人” 否则这个人不是。
不难发现这个处理过程是O(n)的 加上排序的复杂度O(n log n) 所以整个算法的时间复杂度是O(n log n)
有个细节要注意 就是智力值相同的情况下的判断。一种方法是每次考虑所有智力值一样的一组人 不过这样实现起来比较麻烦。另一种方法是对于数据按需要进行双关键字排序(第一关键字从小到大 第二关键字从大到小 然后从n向1统计),然后直接统计。
Code: /rlri0
var
a:array[1..100000,1..2] of int64;
i,n,ans:longint;
max:int64;
procedure fs(s,e:longint);
var
m,k,j:longint;
ms:array[1..2] of int64;
begin
m:=(s+e) shr 1;k:=s;j:=e;
ms:=a[m];a[m]:=a[k];
while kj do
begin
while
(kj)and((a[j,1]ms[1])or((a[j,1]=ms[1])and(a[j,2]ms[2]))) do dec(j); if kj then begin a[k]:=a[j];inc(k);end;
while
(kj)and((a[k,1]ms[1])or((a[k,1]=ms[1])and(a[k,2]ms[2]))) do inc(k); if kj then begin a[j]:=a[k];dec(j);end;
end;
a[k]:=ms;
if sk-1 then fs(s,k-1);
if j+1e then fs(j+1,e);
end;
begin
assign(input,#39;niuren.in#39;);reset(input);
assign(output,#39;niuren.out#39;);rewr
您可能关注的文档
- ()为死亡病例第一责任报告人..doc
- (一)未按照规定进行职业病危害预评价或者未提交职业病危害预评价报告.doc
- (必威体育精装版)2015年医药行业分析报告.doc
- ,分别在拂晓,傍晚,睡前的月相图和文字表述开题报告,标题数字.doc
- ,建行,财富报告.doc
- --楼盘前期可行性分析报告(范文).doc
- ,,】开题报告,标题数字.doc
- -年产70000吨e-ch玻璃纤维生产线可行性研究报告pdf.doc
- .,人感染h7n9禽流感疑似或确诊病例的网络报告时限.doc
- .,调研报告一般包括调研目的、调研方法、调研结果及资料分析、对策建议和附录等内.doc
- 江苏省某中学2024-2025学年高三年级上册开学考试语文试卷.pdf
- 烃的燃烧规律及其应用-2024年高中化学讲义(选择性必修三).pdf
- 2025年高考物理专项复习:牛顿运动定律的综合运用(分层练)(解析版).pdf
- 2025年高考语文模拟作文“破除认知偏见,拥抱多元”审题立意及范文.pdf
- 高三地理一轮复习讲义:交通运输布局及其对区戒发展的影响.pdf
- 北京市顺义某中学2023-2024学年高三年级上册10月月考化学试题.pdf
- 高三地理一轮复习讲义:认识大洲——亚洲.pdf
- 北京市某中学2023-2024学年高二10月月考语文试题.pdf
- 2025年高考数学复习教案:导数与函数的极值最值.pdf
- 2025年高考数学复习之解答题:平面解析几何(10题).pdf
文档评论(0)