默认Blog标题

默认Blog子标题

 

第一篇随笔,加测试



《标题果然很难看,不用了。》

编码测试:
こんにちは~ ラ麺は美味しいですわ。
♥★✎☂♨☭❂
últimos?

7月動(hou)画(gong):
「織田信奈の野望」、
「恋と選挙とチョコレート」、
「この中に1人、妹がいる」、
「カンピオーネ!」。

http://www.newegg.com.cn/这是链接
http://www.newegg.com.cn/  这也是链接
还是链接   http://www.newegg.com.cn/ 

点这里:自定义链接

放图: SAKI

贴图:(Sa姐的图)




图片库测试:



果然节操什么的还是丢掉比较好


贴代码:
(居然对齐有问题)


const int maxn = 500005;
int val[maxn*4];

void build(int p,int l,int r)
{
    if(l==r)
    {
        val[p]=inf;
        return;
    }
    int mid=(l+r)/2;
    build(pl,l,mid);
    build(pr,mid+1,r);
    val[p]=inf;
}
void insert(int p,int l,int r,int pos)
{
    if(l==pos && r==pos)
    {
        val[p]=pos;
        return;
    }
    int mid=(l+r)/2;
    if(pos<=mid)insert(pl,l,mid,pos);
    else insert(pr,mid+1,r,pos);
    val[p] = min(val[pl],val[pr]);
}
int query(int p,int l,int r,int a,int b)
{
    if(l==a && r==b)return val[p];
    int mid=(l+r)/2;
    if(b<=mid)return query(pl,l,mid,a,b);
    else if(a>mid)return query(pr,mid+1,r,a,b);
    else
    {
        int L = query(pl,l,mid,a,mid);
        if(L<inf)return L;
        return query(pr,mid+1,r,mid+1,b);
    }
}

int income[maxn];//the time coming X


int best,besttime;
int bestmod;

void checker(int i,int Y)
{
    if(i>=inf)return;
    int mod = i%Y;
    if(mod < bestmod || mod==bestmod && income[i]>besttime )
    {
        best=i;
        besttime=income[i];
        bestmod=mod;
    }
}
int table[1005][1005];

void solve()
{
    int n;
    while(scanf("%d",&n),n)
    {
        static int cas=1;
        printf("Case %d:\n",cas++);
        int size=500000;
        build(1,0,size);
        char tmp[5];
        int data;
        int cnt=0;
        clr(table,-1);
        REP(i,1,n)
        {
            scanf("%s%d",tmp,&data);
            if(*tmp == 'B')
            {
                insert(1,0,size,data);
                income[data]=++cnt;

                REP(k,1,1000)table[k][ data%k ]=cnt;
            }
            else
            {
                if(cnt==0)
                {
                    //while(1);
                    puts("-1");
                }
                else if(data>=1000)
                {
                    best=inf;
                    bestmod=inf;
                    besttime=inf;
                    int begin=0,end=data-1;
                    while(end<=size)
                    {
                        int res = query(1,0,size,begin,end);
                        checker(res,data);
                        begin+=data;
                        end+=data;
                    }
                    if(begin<=size)
                    {
                        int res = query(1,0,size,begin,size);
                        checker(res,data);
                    }
                    if(besttime>=inf)while(1);
                    printf("%d\n",besttime);
                }
                else
                {
                    int ans=-1;
                    for(int k=0;k<data;k++)if(table[data][k]>=0)
                    {
                        ans=table[data][k];
                        break;
                    }
                    if(ans<0)while(1);
                    printf("%d\n",ans);
                }
            }
        }
        puts("");
    }
}

posted on 2012-07-16 14:53 MM 阅读(168) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

文章分类

收藏夹

DefaultLinks

搜索

最新评论

阅读排行榜

评论排行榜