1. /*
  2. 数字拼图[Digit Puzzle]由NxN的拼片组成
  3. 每个拼片是一个MxM的正方形,外面由一圈数字描述,数字只能是-1,0,1
  4. -1表示图形凹进去1,0表示图形是平的,1表示图形凸出来1,顺时针的

  5. */

  6. #include "stdafx.h"
  7. extern void init(int N,int M,int K);
  8. extern void add_piece(int piece[]);
  9. extern int find_center_piece();
  10. static int mseed;
  11. static int pseudo_rand(void){
  12.    mseed=mseed*431345+2531999;
  13.    return mseed&0x7FFFFFFF;
  14. }

  15. static int run(){
  16.    int i,j,idx,m;
  17.    int N,M,K,result;
  18.    scanf("%d %d %d",&N,&M,&K);
  19.    init(N,M,K);
  20.    int piece[60];
  21.    for(i=0;i<N*N+K;++i){
  22.       for(j=0;j<4;++j){
  23.          scanf("%d",&mseed);
  24.          idx=j*M;
  25.          piece[idx]=piece[idx+M-1]=0;
  26.          if(mseed>0){
  27.             for(m=1;m<M-1;++m)
  28.                piece[idx+m]=pseudo_rand()%3-1;
  29.          }else{
  30.             mseed*=-1;
  31.             for(m=M-2;m>0;--m)
  32.                piece[idx+m]=1-pseudo_rand()%3;
  33.          }
  34.       }
  35.       add_piece(piece);
  36.    }
  37.    result=find_center_piece();
  38.    return result;
  39. }

  40. int main(int argc, char* argv[])
  41. {
  42.    int tc,T;
  43.    setbuf(stdout,NULL);
  44.    freopen("20180624i.txt","r",stdin);
  45.    scanf("%d",&T);
  46.    for(tc=1;tc<=T;++tc)
  47.    {
  48.       printf("#%d %d\n",tc,run());
  49.    }
  50.    return 0;
  51. }

  52. /*
  53. 1
  54. 3 8 1
  55. 324558 198996 -104795 -31709
  56. 1443 122094 -15203 -67959
  57. 222569 376501 -127631 -54743
  58. 88597 51386 -648201 -395447
  59. 15203 54743 -324558 -579850
  60. 648201 268085 -355781 -376501
  61. 355781 74551 -297177 -249935
  62. 88597 80788 -617409 -395447
  63. 850670 395447 -222569 -122094
  64. 127631 249935 -303339 -198996
  65. */


  1. #include "stdafx.h"

  2. /*
  3. 3 <= N <= 49 odd number
  4. 8 <= M <= 18
  5. 1 <= K <= 5
  6. */

  7. int fn;
  8. int fm;
  9. int fk;
  10. short a_ps[2406][60];
  11. short mark[2406];

  12. void init(int N,int M,int K)
  13. {
  14.    fn=N;
  15.    fm=M;
  16.    fk=K;
  17. }

  18. void add_piece(int piece[])
  19. {

  20. }

  21. int find_center_piece()
  22. {
  23.    return 0;
  24. }



10-23 22:21