算法竞赛进阶指南
just a chicken
这个作者很懒,什么都没留下…
展开
-
算法竞赛进阶指南0x08 总结练习(下)
数的进制转换编写一个程序,可以实现将一个数字由一个进制转换为另一个进制。这里有62个不同数位{0-9,A-Z,a-z}。输入格式第一行输入一个整数,代表接下来的行数。接下来每一行都包含三个数字,首先是输入进制(十进制表示),然后是输出进制(十进制表示),最后是用输入进制表示的输入数字,数字之间用空格隔开。输入进制和输出进制都在2到62的范围之内。(在十进制下)A = 10,B = 1...原创 2019-11-22 11:42:28 · 381 阅读 · 0 评论 -
算法竞赛进阶指南0x08 总结练习(中)
防线达达学习数学竞赛的时候受尽了同仁们的鄙视,终于有一天…受尽屈辱的达达黑化成为了黑暗英雄怪兽达达。就如同中二漫画的情节一样,怪兽达达打算毁掉这个世界。数学竞赛界的精英 lqr 打算阻止怪兽达达的阴谋,于是她集合了一支由数学竞赛选手组成的超级行动队。由于队员们个个都智商超群,很快,行动队便来到了怪兽达达的黑暗城堡的下方。但是,同样强大的怪兽达达在城堡周围布置了一条“不可越过”的坚固防线。...原创 2019-11-21 16:45:37 · 295 阅读 · 0 评论 -
算法竞赛进阶指南0x08 总结练习(上)
飞行员兄弟“飞行员兄弟”这个游戏,需要玩家顺利的打开一个拥有16个把手的冰箱。已知每个把手可以处于以下两种状态之一:打开或关闭。只有当所有把手都打开时,冰箱才会打开。把手可以表示为一个4х4的矩阵,您可以改变任何一个位置[i,j]上把手的状态。但是,这也会使得第i行和第j列上的所有把手的状态也随着改变。请你求出打开冰箱所需的切换把手的次数最小值是多少。输入格式输入一共包含四行,每行...原创 2019-11-17 16:32:15 · 242 阅读 · 0 评论 -
算法进阶指南0x 贪心
防晒有C头奶牛进行日光浴,第i头奶牛需要minSPF[i]到maxSPF[i]单位强度之间的阳光。每头奶牛在日光浴前必须涂防晒霜,防晒霜有L种,涂上第i种之后,身体接收到的阳光强度就会稳定为SPF[i],第i种防晒霜有cover[i]瓶。求最多可以满足多少头奶牛进行日光浴。输入格式第一行输入整数C和L。接下来的C行,按次序每行输入一头牛的minSPF和maxSPF值,即第i行输入min...原创 2019-11-16 16:55:37 · 286 阅读 · 0 评论 -
算法竞赛进阶指南0x6 倍增
二分与倍增倍增的定义请参考李煜东大佬的书,我们这里给出二分和倍增的模板。二分:int l=0,r=v.size()-1;while(l<r){ int mid=l+r>>1; if(v[mid]>=x) r=mid; else l=mid+1;}倍增:int r=0,p=1;while(p){ if(r+p<v.size() &&...原创 2019-11-13 16:40:55 · 398 阅读 · 0 评论 -
算法竞赛进阶指南 0x二分
知识点如果一个区间,可以根据某种属性,把区间分为两段,且一段满足这个属性,而另一段不满足,我们就可以使用二分。二分模板while(l<r){ int mid=l+r>>1; if(a[mid]>=x) r=mid; else l=mid+1;}while(l<r){ int mid=l+r+1>>1; if(a[mid]<=...原创 2019-11-11 23:53:37 · 262 阅读 · 0 评论 -
算法竞赛进阶指南0x 前缀和与差分
激光炸弹一种新型的激光炸弹,可以摧毁一个边长为 R 的正方形内的所有的目标。现在地图上有 N 个目标,用整数Xi,Yi表示目标在地图上的位置,每个目标都有一个价值Wi。激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆炸范围,即那个边长为 R 的正方形的边必须和x,y轴平行。若目标位于爆破正方形的边上,该目标不会被摧毁。求一颗炸弹最多能炸掉地图上总价值为多少的目标。输入格式第一...原创 2019-11-09 21:09:08 · 284 阅读 · 0 评论 -
算法竞赛进阶指南0x 递归与递推
知识点递归:当问题存在,C->B->A这样的拓扑序的情况下,我们即可使用递归,把A直接丢给递归,在处理A之前先处理B,在处理B之前先处理C递推:和递归相反,递推先处理C再B最后A递归实现指数型枚举从 1~n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。输入格式输入一个整数n。输出格式每行输出一种方案。同一行内的数必须升序排列,相邻两个数用恰好1个空格隔开...原创 2019-11-09 13:16:54 · 341 阅读 · 0 评论 -
算法竞赛进阶指南0x 位运算
知识点位运算的主要操作符<<,>>,&,|,^ ,分别是左移,右移,位与,位或,位异或。左移常用操作 1<<n 表示2n,左移n位表示*2n,其实很好理解右移常用操作k>>1表示/2,向0取整,向0取整,而/2是向下取整,感受一下这细微的区别。位与,常用操作n&1,提取最低位。位或,一般用于把某一项置1。位异或,把某一项取...原创 2019-11-09 10:52:23 · 480 阅读 · 0 评论