摘要:
一看题意,感觉可以用线段树来做,但是二维挺难处理的,后来百度了一下,大牛们是将二维化为一维,因为点已经排好了序,我们就可以省去了一维,只考虑x,然后就是赤裸裸的线段树了,而且还不用事先建树。#include<iostream>#include<cstdio>#include<cstring>using namespace std;struct node{ int x,y;}point[15010];int res[15010],tree[32000*4+10];int insert(int i,int left,int right,int x){ int m 阅读全文
摘要:
想一想知道n-1位的结果,如何得到n位的结果呢?假如我们知道n-1的后两位再枚举第n位的数字,不就得到n位的结果了吗?我们用res[n][i][j]表示n位最后两位是i和j;Res[i][j][k]=∑res[i-1][l][j];(其中100*l+10*j+k 是素数)我们还可以优化一下,因为最后一位只有可能是1、3、7、9。所以可以将k和j所在的循环的长度改为4。#include<iostream>#include<cstdio>#include<cstring>#include<cmath>using namespace std;int r 阅读全文