• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Why so serious? --[NKU]schindlerlee

            2010年1月27日星期三.sgu138 構造


            sgu138:構造
            我太二了,想了一個排序貪心的算法,死活過不了test 8

            后來看了別人的程序,才想到,原來可以從另一個方向思考。

            可以知道一共會有 sum/2場比賽,
            對于每一個人,可以讓他贏到只剩一場,然后輸掉最后一場。
            也就是根據題目中要求的輸出方法,選擇一場進行第一列的填充,
            剩下最后一個填到第二列。然后繼續選下一個

            也就是按照如下方法進行填充。
            x_
            x_
            x_
            x_
            x_
            x_
            yx
            y_
            y_
            y_
            zy
            z_
            z_
            然后空白的地方,隨便選一個沒用完的填上即可。

             1 
             2 const int N = 128;
             3 struct L{
             4     int idx,val;
             5 }a[N];
             6 int n,sum,res[N*N][2];;
             7 int cmp(L a,L b) { return a.val > b.val; }
             8 void proc() //http://m.shnenglu.com/schindlerlee
             9 {
            10   int i,times = 0,j;
            11   sort(a,a + n,cmp);
            12   for (i = 0;i < n && times < sum;i++) {
            13       while (a[i].val > 1 && times < sum) {
            14           res[times++][0= a[i].idx;
            15           a[i].val--;
            16       }
            17       if(times < sum) {
            18           res[times][1= a[i].idx;
            19           a[i].val--;
            20       }
            21   }
            22 
            23   int top = 0;
            24   while (a[top].val == 0) {
            25       top++;
            26   }
            27   for (i = 0;i < sum;i++) {
            28      printf("%d ",res[i][0]);
            29      if (res[i][1]) {
            30          printf("%d\n",res[i][1]);
            31      }else {
            32          printf("%d\n",a[top].idx);
            33          a[top].val--;
            34          if(a[top].val == 0) {top++;}
            35      }
            36   }
            37 }
            38 int main()
            39 {
            40   int i,j,k;
            41   scanf("%d",&n);
            42   for (i = 0;i < n;i++) {
            43       scanf("%d",&a[i].val);
            44       a[i].idx = i + 1;
            45       sum += a[i].val;
            46   }
            47   sum /= 2;
            48   printf("%d\n",sum);
            49   proc();
            50   return 0;
            51 }
            52 

            posted on 2010-01-27 01:56 schindlerlee 閱讀(1280) 評論(0)  編輯 收藏 引用 所屬分類: 解題報告

            久久丝袜精品中文字幕| 久久国产精品99久久久久久老狼 | 久久久久久av无码免费看大片| 91久久精品国产成人久久| 久久精品二区| 麻豆成人久久精品二区三区免费 | 午夜精品久久久内射近拍高清| 亚洲AV日韩AV天堂久久| 久久国产亚洲精品麻豆| 久久久无码精品亚洲日韩京东传媒| 久久久久免费看成人影片| 久久九九免费高清视频| 怡红院日本一道日本久久 | 久久久久亚洲精品无码网址| 久久福利资源国产精品999| 九九久久99综合一区二区| 久久精品中文字幕大胸| 国产精品成人无码久久久久久| 狠狠色丁香婷婷久久综合| 国产精品久久久久久久久久免费| 亚洲午夜久久久久妓女影院| 久久夜色精品国产www| 99久久国产综合精品网成人影院| 久久亚洲AV成人无码| 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 99麻豆久久久国产精品免费 | 久久99久久无码毛片一区二区| 欧美牲交A欧牲交aⅴ久久| 国内精品伊人久久久久妇| 午夜精品久久影院蜜桃| 久久夜色精品国产www| 久久精品亚洲欧美日韩久久| 伊人久久大香线焦综合四虎| 久久亚洲高清观看| 亚洲国产精品一区二区久久| 亚洲狠狠综合久久| 国产精品欧美亚洲韩国日本久久 | 久久99精品久久久久久9蜜桃| 超级碰久久免费公开视频| 国产毛片久久久久久国产毛片| 国产精品久久久久久福利漫画|