ACM集训日志18/8/6-18/8/9

原本要求的一天一总结,由于前几天可能忘了关于总结的事,所以现在集中总结一下(2018/8/9 22:50)
时间:2018/8/6-----2018/8/6
练习内容:二分、分治、贪心;

 8/6,二分其实在上半年学习数据结构的时候就有讲过,只不过在当时没有熟练掌握。没记错的话,当时学得二分算法是关于一些普通的二分查找,并没有深入研究。
             说说今天学的什么:二分查找、二分法求方程根、练习”openjudge 百练 2456“ 牛栏问题,这题真正解决是在今天下午,花了一下午时间终于把它给弄明白了,但是不巧的是在OJ上测试时总是RunTime
    Error【捂脸】,测试了各种我能想到的案例,预估是数据溢出;
             收获:在使用二分法时注意:最好用L+(R-L)/2代替(L+R)/2以避免(L+R)过大溢出;![避免(L+R)过大溢出(https://img-blog.csdn.net/20180809231225296?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2N3eXAxODgwOQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
  


      
     8/7、8/8,这两天学的分治和贪心,其实这三天学的有关二分的在上半年数据结构中的算法部分都有讲过,这次主要以复习、巩固为主,主要着重复习了快速排序,归并基本没看,看能不能找时间补回来,有点怀疑自己会忘记【捂脸】。
     get了一个新技能:学会使用sort()函数

sort函数
sort(room, room + n); ->表示从0号排到n-1,n为需要排的元素个数, room为需要排序的那个数组,一般默认从小到大排序,如果需要从大到小则需要在sort里再加一个函数,调用三个参数的sort:sort(begin,end,compare)就成了,compare需要自己编写。
bool compare(int a,int b)
{
return a<b; //升序排列,如果改为return a>b,则为降序

}
get的另一种排序方式:OJ 百练 4110为例
在结构体中的
#include
#include
#include
using namespace std;
const double eps = 1e-6;
#define MAXSIZE 110

struct Candy{
int v, w;
bool operator < (const Candy & c) const
{return double(v) / w - double(c.v) / c.w > eps;}
}candies[MAXSIZE];

//这个是把结构体中储存的V与W的比值从大到小排序

struct Candy{
int v, w;
bool operator < (const Candy & c) const
{return double(v) / w - double(c.v) / c.w < eps;}
}candies[MAXSIZE];
//这个是把结构体中储存的V与W的比值从小到大排序
加粗部分是可更改部分,基本按照这个格式写就行;

关于它的调用:sort(candies, candies + n);//按礼物的价值 /重量比从大到小依次选 取礼物,尽可能多地装,直到达总重量 w

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值