随笔分类 - 二分&哈希
摘要:解题思路看了官方的思路,就是前缀和的思想,做题时也想到了用前缀和,但没想到怎么才能提高效率,一点一点进步吧做完后,各种失误,各种wa,经过n个时间的查错,终于ac啦#include <iostream>
#include <cstdio>
using namespace std;
const int maxn=100000+3;
int s[maxn][35];
int a[maxn][35];
int head[maxn],nexvt[maxn];
int n,k;
int main()
{ while(~scanf("%d%d",&n,&
阅读全文
摘要:无限感慨啊,这道题半年前就做过,无限wa就放弃了,今天又重做这题,依旧没变无限wa,只不过这次敲了20分钟就完了,代码也简洁了,哈希函数直接自己构造的,比之前熟练了,然后检查,历经一个小时之后,才发现把'eh'当成了'en',改后ac,300ms,然后再翻出之前的代码,果然是同样的错误,回想起半年前的那一整个下午,真是欲哭无泪啊#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int maxn=100000+3;int
阅读全文
摘要:哈希我太屎啦,以后一定不能再犯写while循环忘了更改循环条件的错误,导致浪费这么长时间来调试#include <iostream>
#include <cstdio>
using namespace std;
const int mod=10000003;
const int maxn=4100;
struct { int data,sum,next;
}node[maxn*maxn];
int head[mod],f[4][maxn],num;
void insert(int p)
{ int k=(p%mod+mod)%mod; int i=head[k]; wh
阅读全文
摘要:二分#include <iostream>
using namespace std;
const int maxn=5010;
int Ui[maxn],Li[maxn],dx[maxn],dy;
int amount[maxn];
int m,n,x1,y1,x2,y2;
int bsearch(int xj,int yj)
{ int low=-1,high=m,mid; while(high-low>1) { mid=(high+low)/2; if((dy*(xj-Ui[mid])-dx[mid]*(yj-y1))<0) high=mid; else lo...
阅读全文

浙公网安备 33010602011771号