题解

56 条题解

  • 0
    @ 2009-08-15 21:51:00

    第一次前一百名AC

    刚开始不会染色,郁闷了半天

  • 0
    @ 2009-08-03 21:00:59

    终于过了

  • 0
    @ 2009-08-03 15:50:08

    第一次提交的时候。。居然忘把调试的东西删掉嘞。。。郁闷哦。。。。

  • 0
    @ 2009-08-02 23:13:15

    二分图染色判定(bfs dfs 都行)

    pas版都掉了

    现在才出题

    贪心都100

    不刷题

    无聊

  • 0
    @ 2009-08-02 09:47:24

    不懂…………

  • 0
    @ 2009-08-01 18:16:19

    汗...打错变量名+交错编译环境*2

    最近做了什么掉RP的事么...

    4次AC...

    题解http://hi.baidu.com/sk_raucous/blog/item/4b752ff86a79ec50252df2bd.html

  • 0
    @ 2009-08-01 12:44:50

    晕,怎么不加到原题里

  • 0
    @ 2009-08-09 11:38:26

    去年这道题终于出现了!核心思路:如果有序列里下标为i,j,k(ia[k],那么i、j不能进一个栈。也就是,比如说,123不能以231的形式入同一个栈。 如对本题有疑问可以参看我的题解:http://xujieqi.blog.hexun.com/35722312_d.html

  • 0
    @ 2009-08-01 10:44:50

    可以用DFS染色,再加上二分图匹配。

    NOIP2008的复赛试题为什么没有加到原题里?

  • 0
    @ 2009-08-01 10:41:50

    去年这道题终于出现了!要是早点出现我就不在RQNOJ交了。。。核心思路:如果有序列里下标为i,j,k(ia[k],那么i、j不能进一个栈。也就是,比如说,123不能以231的形式入同一个栈。

  • 0
    @ 2009-08-01 10:15:27

    嗯!the tenth !

  • 0
    @ 2009-08-01 10:06:34

    原题的N《=1000吧

  • 0
    @ 2009-08-04 21:47:58

    我是沙茶!我是沙茶!!我是沙茶!!!

    好不容易0ms了!!!!!!!!

  • 0
    @ 2009-07-31 16:25:09

    嗯,又是一道推来推去的题……

  • -1
    @ 2015-05-19 22:32:41

    快来膜拜我,我是宇宙金牌爷快来膜拜我,我是宇宙金牌爷快来膜拜我,我是宇宙金牌爷快来膜拜我,我是宇宙金牌爷快来膜拜我,我是宇宙金牌爷快来膜拜我,我是宇宙金牌爷快来膜拜我,我是宇宙金牌爷快来膜拜我,我是宇宙金牌爷快来膜拜我,我是宇宙金牌爷快来膜拜我,我是宇宙金牌爷快来膜拜我,我是宇宙金牌爷

  • -1
    @ 2013-10-22 22:01:50

    0毫秒通过~~~~~~~~~~~~~~~~~~~~~~~
    cpp 37行 ~~~~~~~~~~~~~~~~~~~~~~~
    评测结果
    编译成功

    测试数据 #0: Accepted, time = 0 ms, mem = 708 KiB, score = 10
    测试数据 #1: Accepted, time = 0 ms, mem = 700 KiB, score = 10
    测试数据 #2: Accepted, time = 0 ms, mem = 704 KiB, score = 10
    测试数据 #3: Accepted, time = 0 ms, mem = 704 KiB, score = 10
    测试数据 #4: Accepted, time = 0 ms, mem = 704 KiB, score = 10
    测试数据 #5: Accepted, time = 0 ms, mem = 700 KiB, score = 10
    测试数据 #6: Accepted, time = 0 ms, mem = 708 KiB, score = 10
    测试数据 #7: Accepted, time = 0 ms, mem = 704 KiB, score = 10
    测试数据 #8: Accepted, time = 0 ms, mem = 704 KiB, score = 10
    测试数据 #9: Accepted, time = 0 ms, mem = 704 KiB, score = 10
    Accepted, time = 0 ms, mem = 708 KiB, score = 100
    代码
    #include<cstdio>
    #include<iostream>

    #include<algorithm>
    using namespace std;
    int p [1010 ],col[1010 ],Min[1010 ],pai[3][1010],l[3],wei[10010],las[10010],too[10010];
    int n,t=0,should=1;

    void line(int x,int y) {
    las[++t] = wei[x]; wei[x] = t; too[t] = y;
    las[++t] = wei[y]; wei[y] = t; too[t] = x;
    }

    void draw(int x,int c) {
    if (!col[x] ) col[x]=c; else
    if ( col[x]!=c) {printf("0");exit(0);} else return;
    for (int i=wei[x]; i; i=las[i]) draw(too[i],3-c);
    }

    int main() {
    scanf("%d",&n); for (int i=1 ; i<=n; i++) scanf("%d",&p[i]);
    Min[n] = p[n]; for (int i=n-1; i>=1; i--) Min[i]=min(Min[i+1],p[i]);
    pai[1][0]=1002; col[n+1]=1; pai[2][0]=1002; p[n+1]=1001;
    for (int i=1 ; i<=n-2; i++)
    for (int j=i+1; j<=n-1; j++)
    if(p[i]<p[j]&&Min[j+1]<p[i]) line(i,j);
    for (int i=1 ; i<=n ; i++)
    if ( !col[ i ] ) draw(i,1);
    for (int i=1 ; i<=n+1; i++) {
    int f=1;
    while (f)
    if ( pai[1][l[1]] == should ) {should++; l[1]--; printf("b ");} else
    if ( pai[2][l[2]] == should ) {should++; l[2]--; printf("d ");} else f=0;
    pai[ col[i] ][ ++l[ col[i] ] ]=p[i];
    if (i<n+1) printf("%c ", char(2*col[i]+95) );
    }
    }

信息

ID
1605
难度
6
分类
图结构 | 二分图 点击显示
标签
递交数
2361
已通过
681
通过率
29%
被复制
8
上传者