随笔分类 - 题解2
摘要:往返2x次可以看成到对岸2x次,也可以理解为2x只青蛙同时过河,所以每一个y区间石头高度和要>=2x,想到这一步后就解决了,只需要用双指针找出满足条件的最小的y区间了 `#include<stdio.h> include<stdlib.h> include<string.h> include<bit
阅读全文
摘要:这题用二分答案和贪心思想,为了让前面的人尽可能少的抄写,就从后往前分配任务,用贪心思想,先尽量分配任务,直到超过检验的x再分配给下一个人,最后判断人数是否满足条件,最后输出的时候也逆序输出就行了 `#include<stdio.h> include<stdlib.h> include<string.
阅读全文
摘要:显然用二分答案,重点就是check函数怎么写了,用x来表示套牌数,所以x要满足每一个x-a<=b,并且所有x-a的和要<=m.最后结果一定要开long long `#include<stdio.h> include<stdlib.h> include<string.h> include<bits/s
阅读全文
摘要:普通的二分答案,也没什么好说的 `#include<stdio.h> include<stdlib.h> include<string.h> include<bits/stdc++.h> using namespace std; struct bian{ int h; int w; }; int c
阅读全文
摘要:先将数列排序,A-B=C可以看成A=B+C,只要用二分把A的首位和末尾找到,A的个数就是差值+1,最后把每个数都求一遍就是答案了 `#include<stdio.h> include<stdlib.h> include<string.h> include<bits/stdc++.h> using n
阅读全文
摘要:就是基础的二分,没什么好说的 `#include<stdio.h> include<stdlib.h> include<string.h> int seek(int n,int *lst,int x){ int l=0,r=n-1; while(l<=r){ int m=(l+r)/2; if(ls
阅读全文