杂
文章平均质量分 66
AC_alvin
这个作者很懒,什么都没留下…
展开
-
HDOJ 1348 基本二维凸包问题
这次写的凸包用的是Graham scan算法就数据结构上只是简单地运用了一个栈#include#include#include//#define LOCALusing namespace std;const int max1=1000;typedef struct point{ int x; int y;}point;int cp(point a,point b,point c原创 2014-06-24 15:06:34 · 341 阅读 · 0 评论 -
SG函数
定义P-position和N-position,其中P代表Previous,N代表Next。直观的说,上一次move的人有必胜策略的局面是P- position,也就是“后手可保证必胜”或者“先手必败”,现在轮到move的人有必胜策略的局面是N-position,也就是“先手可保证必胜”。更严谨的定义是:1.无法进行任何移动的局面(也就是terminal position)是P-position;原创 2014-06-24 15:07:01 · 365 阅读 · 0 评论 -
HDOJ 1848(SG函数)
对于SG函数来说,sg[y]=x的意义为,x与y的输赢状态是相同的sg[y]=mex(y)的定义与n.p点的定义是相同的 #include#includeusing namespace std;int SG[1001],f[20]={1,2};int flag[20];void getfibo(){ int i; for(i=2;i}void getSG(int x){原创 2014-06-24 15:06:32 · 435 阅读 · 0 评论 -
关于对于归并排序的理解
归并排序是一种利用了分治思想的一种算法,是我在白书上看到的一种高效的排序算法,因此学习一下,并在此做下总结,加深理解。(毕竟也不能老是用sort不是?)首先由此算法我了解到了一种分治三步法的一种概念(一直对于这些东西云里雾里啊T T)。划分问题,递归求解,合并问题。而归并排序则非常清晰地完成了这三步。划分问题便是想要尽可能的把数组分为两半,使之变为两个较小的问题。递归便是不断地将问题划分地更小原创 2014-06-24 15:06:54 · 367 阅读 · 0 评论 -
尼姆博弈的典型例题
#includeusing namespace std;int main(){ int n; int i,j; int a[100+5]; int ans,tmp,cnt; while(cin>>n&&n) { for(i=0;i>a[i]; ans=a[0]; for(i=1;i tmp=cnt=0;原创 2014-06-24 15:06:27 · 505 阅读 · 0 评论 -
HDOJ 3398
这个题坑了太久太久啊!!!!!贡献了得有30+WA才发现原来是因为在乘法中有溢出导致一直TLE啊。。。。但是到最后也不知道有个问题怎么解决的。就是在getp()中的num值的诡异的改变! #include#include#includetypedef long long LL;const int TON=20100501;const int max1=2000005;int p原创 2014-06-24 15:06:38 · 364 阅读 · 0 评论 -
【HDU 4928】Series 2
这个题主要在于需要将前后的0合并起来,因为0-0=0,所以没有必要zuo原创 2014-08-08 16:00:24 · 453 阅读 · 0 评论 -
【HDU 4921】Map
这道题在比赛的时候已经搞出来了大半,但是因为精度控制的不熟悉以及意识的模糊原创 2014-08-08 11:24:17 · 654 阅读 · 0 评论 -
【ZOJ 3887】LCGCDS
比赛的时候没有想出来跪了(事实上赛后也拖到现在才A掉,还是因为昨天多校有一个加强版的题才想到的)。题目大意是给你两个序列,问你最长的gcd相同的子串的长度是多少,并且输出个数。对于每一个以i为结尾的子串,最多只会出现log级别的不同的gcd子串,因此我们可以考虑先把两个序列的gcd长度处理出来,然后再处理。对于所有gcd为v的子串,我们得到的是很多个最小长度和最大长度的集合。首先我原创 2015-07-29 23:29:31 · 523 阅读 · 0 评论