小毅儿提示您:看后求收藏(二千零一十九年ACM一十月末总结,点醒梦中人,小毅儿,笔趣阁),接着再看更方便。
请关闭浏览器的阅读/畅读/小说模式并且关闭广告屏蔽过滤功能,避免出现内容无法显示或者段落错乱。
ler_bnd()和pper_bnd()都是利用二分查找的方法在一个排好序的数组中进行查找的。
在从小到大的排序数组中,
ler_bnd(begin,end,n):从数组的begin位置到end-1位置二分查找第一个大于或等于n的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,得到找到数字在数组中的下标。
int[10]={0,1,2,3,4,5,6,7,8,9};
int=ler_bnd(,+10,8)-;
[]和的结果都是8;
int[10]={0,1,2,3,4,5,6,7,8,9};
int=ler_bnd(+5,+10,8)-;
[]和最后的结果也是8;
int[10]={0,1,2,3,4,5,6,7,8,9};
int=ler_bnd(+5,+10,8)-(+5)(这样写就错了);
最后的结果变成了3;[]肯定相应变了。
pper_bnd(begin,end,n):从数组的begin位置到end-1位置二分查找第一个大于n的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,得到找到数字在数组中的下标。
在从大到小的排序数组中,重载ler_bnd()和pper_bnd()
ler_bnd(begin,end,n,greter()):从数组的begin位置到end-1位置二分查找第一个小于或等于n的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,得到找到数字在数组中的下标。
pper_bnd(begin,end,n,greter()):从数组的begin位置到end-1位置二分查找第一个小于n的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,得到找到数字在数组中的下标。
下面的代码帮助理解
ind(int,intb)
{
retrn>b;
}
intin()
{
intn[6]={1,2,4,7,15,34};
intps1=ler_bnd(n,n+6,7)-n;返回数组中第一个大于或等于被查数的值
intps2=pper_bnd(n,n+6,7)-n;返回数组中第一个大于被查数的值
srt(n,n+6d);按从大到小排序
intps3=ler_bnd(n,n+6,7,greter())-n;返回数组中第一个小于或等于被查数的值
intps4=pper_bnd(n,n+6,7,greter())-n;返回数组中第一个小于被查数的值
retrn0;
}
37
415
27
34
Prgrendedithexide:0
1004.小可爱们
这道水题就不仔细分析了,这道题真的是水题。
代码
intin()
{
intn;
int[9]={0,1,3,4,4,8,3,2,6};
hilein>>n)
{
}
retrn0;
}
直接把代码给你们就好了
1005.英语翻译对抗赛
这道题在错了三道之后才A的。
先来看一下为什么却错了三次的原因。
错误分析
(1)在两次best的地方出了问题。(最大值里面肯定有一个是best呀,不知道当时是怎么想的)
best=x(s+1,s);
s=s+1;
best=x(s-1,s);
s=s-1;
(2)这次best最大值里面虽然有了best,但是s的值我没有改变。
best=x(s+1,best);
best=x(s-1,best);
(3)最后一次是连样例都没过,我连试一下都没有,就直接交了(还是太自大了,认为这道题是一道简单题,但事实证明我并没有那么厉害)。
接下来看一下代码吧,看一下自大的后果。
if([i]==0&p;&p;d!=0)
{
s=s;
d--;
}
if([i]==1)
{
best=x(s+1,best);
s=s+1;
}
if([i]==0&p;&p;d==0)
{
best=x(s-1,best);
s=s-1;
}
在第一个if里面如果成功了,那么d的值可能被减到0,那么正好满足第三个if的条件,正好导致我错误了。其实每次加一ntine就可以了。
代码
intin()
{
intn,x,;
int[105];
hilein>>n>>x>>)
{
fr(inti=1;i<=n;i++)
{
>[i];
}
ints=0;
intbest=0;
intd;
fr(intk=1;k<=;k++)
{
d=x;
fr(inti=1;i<=n;i++)
{
if([i]==0&p;&p;d!=0)
{
s=s;
d--;
}
if([i]==1)
{
best=x(s+1,best);
s=s+1;
}
if([i]==0&p;&p;d==0)
{
best=x(s-1,best);
s=s-1;
}
}
}
}
retrn0;
}
1006.你的心态炸了嘛?
这道题看了,心态确实炸了,就是不会。
上面的代码由于是从rd里面直接复制的原因,会有些出入,大家要谨慎看待。。。
最后的总结:(跳过题目分析的人可以直接看这里)
由于时间有限(周一白天七节课,实在是写不完了)试题的更改会在之后进行补充,还是先谈一谈这段时间里我的真实感受吧。
说实话,我自己本身还是蛮享受这种时候的,因为我明显感觉到我的本领在肉眼可见的速度在增长,我的父母也支持我加入这么一个集训队,虽然确实有时候有一点累,并且累了之后发现你错过了很多东西,但我这个人好像偏于那种不愿动的人,不愿走出舒适区的人,相比于在篮球场、足球场挥洒汗水,我明显偏爱于在教室里静静的坐着。
我蛮喜欢王小波的一句话的:
我活在世上,无非想要明白些道理,遇见些有趣的事,倘能如我愿,我的一生就算成功。
——王小波
真的,从我知道学校里有这么一个类似社团的集训队后,我下意识的感觉我适合这里,相比于老师教课,我更偏爱于独自一人思考,ww.uuksh.cm我把当图书馆志愿者的事给推了(当时已经交了报名表,只差面试了,我连面试都没去,有了机房还去图书馆干嘛),把那些什么乱七八槽的社团也都推了,我自认为我不是去学生会的料,还是呆在机房码字比较适合我。
再说说这次比赛吧,要说自我感觉的话,总感觉自己比较弱,因为我在j上刷的题是靠后的(很靠后),不是我不想多做点,实在是力不从心(或许真的跟自己没有付出全部努力有关),这次的比赛算是给我提了一个醒吧,我真的发现了很多漏洞,包括各个方面,我会努力改正的,这才是比赛的目的嘛。
还有在这段时间,感谢每一个给我们小萌新讲课的师哥师姐们,感谢那些甚至未曾谋面的但他们的博客给了我们灵感与知识的人们,真的十分感谢。
当时光的画笔留下了惨淡的白和污浊的黑
当岁月的利刃磨平了我们菱角分明的心
当追名逐利的狂热浊污了我们澄澈的双眼
当冰冷无情的麻木锈蚀我们灵动的身躯
当初春新抽的嫩芽再也激不起我们心中的一丝波澜……
望我也可以在以后的日子里,不忘记自己现在的所感所想,不忘记每一个人给我的忠告,努力在我大学道路上,走出我自己的一片天空。
......
果然第一次写总结的时候由于写题目分析花的时间有点多,最后的总结写的有点少,以后就会好很多,等以后找机会再发一些总结吧。
在这里还是要感谢本书的六个收藏。。。
本章未完,点击下一页继续阅读。