<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      UVA 11997 - K Smallest Sums

      //UVA 11997 - K Smallest Sums
      /*
      題意:一個k*k數組,每行取一個元素 求和,共有k^k種可能,找到k種最小的和
      輸出。
      第一次是O(n*n)超時了,改用歸并排序,優先隊列實現,時間降低為nlogn
      思路:初始化:每行sort排序;然后每兩行合并 優先隊列存貯前K小數,繼續合并完。
      輸出前k個元素即可。
      *///AC
      #include<cstdio>
      #include<algorithm>
      #include<queue>
      using namespace std;
      const int M=800;
      int a[M][M];
      int k;
      struct Node
      {
          int sum;//a1[i][j]+a2[i+1][j]
          int ct;//標記是否到了最后一行和k 比大小
          Node(int x , int y):sum(x), ct(y){}
          bool operator <(const Node &e)const//重載<
          {
              return sum>e.sum;//升序排列元素
          }
      };
      int merge(int *A,int *B)
      {
          int i,j;
          priority_queue <Node> s;
          for(i=0;i<k;i++)
          s.push(Node(A[i]+B[0],0));//元素入隊列
          for(i=0;i<k;i++)
          {
              Node node =s.top();//找到隊列中最小元素賦值;
              s.pop();
               A[i]=node.sum;
              int ct=node.ct;
              if(ct+1<k)//沒有掃描到最后一行
              s.push(Node(node.sum-B[ct]+B[ct+1],ct+1));//都merge歸并為一行記為A
          }
      }
      int main()
      {
          int i,j;
          while(scanf("%d",&k)!=EOF)
          {
              for(i=0;i<k;i++)
              {
                  for(j=0;j<k;j++)
                  scanf("%d",&a[i][j]);//  sort(a[i],a[i]+k);//
                sort(&a[i][0],&a[i][0]+k);
              }
              for(i=1;i<k;i++)
              merge(a[0],a[i]);//每兩行歸并排序。
              for(i=0;i<k-1;i++)
              printf("%d ",a[0][i]);
              printf("%d",a[0][k-1]);//最后一個數必須獨立輸出
              printf("\n");
          }
          return 0;
      }
      //O(n*n)
      /*//
      //超時
      #include<stdio.h>
      #include<string.h>
      #include<algorithm>
      #include<iostream>
      using namespace std;
      const int M=800;
      int n;
      int a[M][M],b[M*M];
      void f()
      {
          memset(b,0,sizeof(b));
          int i,j,k;
          int ct=0,sum=0;
          for(i=0;i<n;i++)
              ct+=a[i][0];
          for(i=0;i<n;i++)
          {
              for(j=1;j<n;j++)
              {
                  b[sum++]=a[i][j]-a[i][j-1];
              }
          }sort(b,b+sum);
          printf("%d ",ct);
          for(i=0;i<n-1;i++)
          printf("%d ",ct+b[i]);
          printf("\n");
      }
      int main()
      {
          int i,j,k;
          while(scanf("%d",&n)!=EOF)
          {
              for(i=0;i<n;i++)
              {
                  for(j=0;j<n;j++)
                  {
                      scanf("%d",&a[i][j]);//&b[j]);
                  }
                  sort(&a[i][0],&a[i][0]+n);//每行升序排序
                  //sort(b,b+n);
                // printf("##########\n"); //memcpy(&a[i][0],b,sizeof(a));//把a數組全部數字給b,a自己保留。

              }f();
          }
          return 0;
      }


      */

      posted on 2013-02-06 15:04  ACM_Someone like you  閱讀(456)  評論(0)    收藏  舉報

      導航

      主站蜘蛛池模板: 人妻体内射精一区二区三四| 狠狠躁夜夜躁人人爽天天bl| 四虎库影成人在线播放| 中文毛片无遮挡高潮免费| 国产真实乱对白精彩久久老熟妇女 | 国产一区精品在线免费看| 国产一卡2卡3卡4卡网站精品| 国产午夜精品福利91| 四虎库影成人在线播放| 久久婷婷丁香五月综合五| 欧美高清狂热视频60一70| 99久久国产一区二区三区| 亚洲人成伊人成综合网小说| 97视频精品全国免费观看| 亚洲αⅴ无码乱码在线观看性色 | 五月天国产成人av免费观看| 欧美黑人XXXX性高清版| 中文字幕av一区二区| 国产h视频在线观看| 欧美一级高清片久久99| 亚洲人成网站在线播放2019| 国产视频有码字幕一区二区| 四虎库影成人在线播放| 四虎库影成人在线播放| 99精品国产一区二区三| 亚洲男人成人性天堂网站| 国产精成人品日日拍夜夜| 一日本道伊人久久综合影 | 国产午夜精品理论大片| 999精品全免费观看视频| 亚洲偷自拍另类一区二区| 天堂www在线中文| 军人粗大的内捧猛烈进出视频| 亚洲熟伦熟女新五十熟妇| 亚洲色大成网站www永久一区| 亚洲av鲁丝一区二区三区黄| 精品国产成人午夜福利| 亚洲av永久无码精品网站| 中文字幕成熟丰满人妻| 女同AV在线播放| 91精品国产一二三产区|