• <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>

            coreBugZJ

            此 blog 已棄。

            Triangle Conjecture, ACM-DIY Group Contest 2011 Spring 之 6,HDOJ 3805

            Triangle Conjecture

            Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
            Special Judge

            Problem Description
            One could construct a triangle with the digit 1 to 9 as the figure below:

            The triangle is the one that the sums of every four numbers on its three edges are all equals to 23. Moreover, 23 is the biggest summation one can get from this kind of arraignment of digits. Your task is even tougher, given a positive integer n, you should use integer from 1 to 3*(n-1) to construct triangle with equal summation of digits on the three edges and the summation is the biggest among all the possible arraignments. For example, if n = 4, then you should choose number from 1 to 3*(4-1).
            For convenience, the output format for a certain triangle is like the example for the figured triangle above:
            95 41 38 2 6 7
            The numbers are separated by a single space in each row, and there are no spaces at the end of each row.
            Note that there may be several solutions exist, arbitrary one of them will be accepted.
             

            Input
            The first line of the input contains a number t indicates the number of test cases.
            Following t lines, each line will contains only one integer n denoting the side length of the desired triangle. ( t≤20, 3≤n≤1000)
             

            Output
            For each test case, output the triangles one by one.
             

            Sample Input
            2
            3
            4
             

            Sample Output
            6
            1 2
            5 3 4
            9
            5 4
            1 3
            8 2 6 7
             

            Author
            ahui
             

            Source
            ACM-DIY Group Contest 2011 Spring


            找規律,n 分奇偶處理,比賽時倉促,代碼不很簡潔

              1 #include <stdio.h>
              2 
              3 #define  N  1009
              4 
              5 int a[ N ], b[ N ], c[ N ], m, n;
              6 
              7 void solveOdd() {
              8         int i = 1;
              9         m = 0;
             10         while ( i <= 3*n-6 ) {
             11                 if ( i&1 ) {
             12                         a[ m ] = i++;
             13                         b[ m ] = i++;
             14                         c[ m ] = i++;
             15                 }
             16                 else {
             17                         c[ m ] = i++;
             18                         b[ m ] = i++;
             19                         a[ m ] = i++;
             20                 }
             21                 ++m;
             22         }
             23 }
             24 
             25 void solveEven() {
             26         int i;
             27         for ( i = 1; i <= n-2++i ) {
             28                 b[ i-1 ] = n-2+i;
             29         }
             30         a[ 0 ] = 2;
             31         a[ 1 ] = 3*n-6;
             32         c[ 0 ] = 1;
             33         c[ 1 ] = 3*n-7;
             34         m = 2;
             35         i = 2;
             36         while ( m < n-2 ) {
             37                 ++i;
             38                 a[ m ] = i;
             39                 a[ m+1 ] = 3*n-5-i;
             40                 ++i;
             41                 c[ m ] = i;
             42                 c[ m+1 ] = 3*n-5-i;
             43                 m += 2;
             44         }
             45 }
             46 
             47 void swap( int a[], int b[], int *sa, int *sb ) {
             48         int i, tmp;
             49         tmp = *sa;
             50         *sa = *sb;
             51         *sb = tmp;
             52         for ( i = 0; i < m; ++i ) {
             53                 tmp = a[ i ];
             54                 a[ i ] = b[ i ];
             55                 b[ i ] = tmp;
             56         }
             57 }
             58 
             59 void solve() {
             60         int sa, sb, sc, i;
             61         if ( n & 1 ) {
             62                 solveOdd();
             63         }
             64         else {
             65                 solveEven();
             66         }
             67         sa = sb = sc = 0;
             68         for ( i = 0; i < m; ++i ) {
             69                 sa += a[ i ];
             70                 sb += b[ i ];
             71                 sc += c[ i ];
             72         }
             73         if ( sa < sb ) {
             74                 swap( a, b, &sa, &sb );
             75         }
             76         if ( sa < sc ) {
             77                 swap( a, c, &sa, &sc );
             78         }
             79         if ( sb < sc ) {
             80                 swap( b, c, &sb, &sc );
             81         }
             82 }
             83 
             84 void output() {
             85         int i;
             86         printf( "%d\n"3*n-3 );
             87         for ( i = 0; i < m; ++i ) {
             88                 printf( "%d %d\n", c[ i ], b[ i ] );
             89         }
             90         printf( "%d"3*n-4 );
             91         for ( i = 0; i < m; ++i ) {
             92                 printf( " %d", a[ i ] );
             93         }
             94         printf( " %d\n"3*n-5 );
             95 }
             96 
             97 int main() {
             98         int td;
             99         scanf( "%d"&td );
            100         while ( td-- > 0 ) {
            101                 scanf( "%d"&n );
            102                 solve();
            103                 output();
            104         }
            105         return 0;
            106 }
            107 




            posted on 2011-03-26 18:07 coreBugZJ 閱讀(287) 評論(0)  編輯 收藏 引用 所屬分類: ACM

            久久久久久无码国产精品中文字幕| 97久久精品无码一区二区天美| 久久精品成人免费观看97| 久久久久国产一级毛片高清版| 99久久国产综合精品成人影院| 精品久久人人爽天天玩人人妻 | 狠狠色婷婷久久综合频道日韩| 韩国免费A级毛片久久| 天天影视色香欲综合久久| 午夜天堂av天堂久久久| 久久人人爽人爽人人爽av| 99久久亚洲综合精品网站| 久久精品无码av| 亚洲精品乱码久久久久久蜜桃不卡 | 香蕉久久夜色精品国产尤物| 日韩亚洲欧美久久久www综合网| 狠狠久久综合伊人不卡| 亚洲国产成人久久综合一| 久久无码高潮喷水| 久久妇女高潮几次MBA| 99久久国产综合精品成人影院| 久久亚洲精品成人AV| 精品久久久无码21p发布 | 久久久黄色大片| 91久久精品无码一区二区毛片| 色88久久久久高潮综合影院| 欧洲国产伦久久久久久久| 91精品国产色综久久| 国产99久久精品一区二区| 久久久久久亚洲精品成人| 久久综合狠狠综合久久综合88| 久久久噜噜噜久久| 国产精品美女久久久久av爽| 久久精品国产亚洲av影院| 久久亚洲精精品中文字幕| 亚洲精品高清国产一线久久| 人妻无码精品久久亚瑟影视| 亚洲精品无码专区久久同性男| 亚洲欧洲精品成人久久曰影片| 久久国产福利免费| 久久久黄片|