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

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

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

      P14361 [CSP-S 2025] 社團招新 / club 題解

      題目鏈接

      本人博客

      前言

      恩對,筆者在考場上思來想去,一共實現(xiàn)了 \(3\) 種代碼,但無一例外,均未調(diào)出來。怒得 \(25\) pts遺憾退場。

      思路

      首先需要讓每個人選自己最喜歡的社團(貪心),這無疑是最優(yōu)的。但是有可能不合法。

      那我們考慮不合法應(yīng)該怎么辦。

      設(shè) \(3\) 個部門人數(shù)為 \(a,b,c\)(其中 \(a \geq b \geq c\))。如果不合法當(dāng)且僅當(dāng) \(a > \frac{n}{2}\)\(b,c < \frac{n}{2}\)。證明如下。

      | 由題意可知 \(a + b + c = n\)。若 \(a > \frac{n}{2}\),則為 \(n-(b+c) > \frac{n}{2}\),即 \(b+c < \frac{n}{2}\)

      因此只需要考慮其中一個部門不合法的情況。(筆者就是這個證明考場上腦子不好使,沒想到)

      于是只需要預(yù)處理每個人從他最喜歡的部門到他次喜歡的部門的滿意度差。答案把多出來的人的差減去即可。

      筆者這里用的是優(yōu)先隊列維護,時間復(fù)雜度 \(O(n \log n)\)

      代碼如下

      #include<cstdio>
      #include<iostream> 
      #include<cstring>
      #include<algorithm>
      #include<queue>
      using namespace std;
      #define int long long 
      inline int Read(){
          int x=0,f=1;
          char c=getchar();
          while(!isdigit(c)){if(c=='-')f=-1;c=getchar();}
          while(isdigit(c)){x=x*10+c-48;c=getchar();}
          return x*f;
      }
      inline void Write(int x){
          if(x<0){x=-x;putchar('-');}
          if(x>9) Write(x/10);
          putchar(x%10+'0');
      }
      const int N=1e5+10;
      int T,n,ans;
      int a[10]; 
      priority_queue<int> q1,q2,q3;
      //三個隊列用來維護每個部門的人數(shù)和每個人次大與最大之間的差
      //注意默認為大根堆
      int Max_3(int a,int b,int c){return max(max(a,b),c);}//最大值
      void solve(){
          ans=0;
          while(!q1.empty()) q1.pop();
          while(!q2.empty()) q2.pop();
          while(!q3.empty()) q3.pop();
          //多測清空!
          n=Read();
          for(int i=1;i<=n;i++){//邊輸入邊處理
              for(int j=1;j<=3;j++){
                  a[j]=Read();
              } 
              int t=Max_3(a[1],a[2],a[3]);
              if(a[1]==t){
                  ans+=a[1];
                  q1.push(max(a[2]-a[1],a[3]-a[1]));
                  //因為默認大根堆,而我們最后貪心出隊的應(yīng)該是差最小的,所以可以存復(fù)數(shù),出隊的時候直接加  
              }
              else if(a[2]==t){
                  ans+=a[2];
                  q2.push(max(a[1]-a[2],a[3]-a[2]));  
              }
              else if(a[3]==t){
                  ans+=a[3];
                  q3.push(max(a[1]-a[3],a[2]-a[3]));
              }
          }
          while(q1.size()>n/2){
              ans+=q1.top();q1.pop();
          }
          while(q2.size()>n/2){
              ans+=q2.top();q2.pop();
          }
          while(q3.size()>n/2){
              ans+=q3.top();q3.pop();
          }	
          printf("%lld\n",ans);
      }
      signed main(){
          T=Read();
          while(T--){
              solve();//多測函數(shù)好
          }
          return 0; 
      }
      
      posted on 2025-11-03 16:38  _Liuliuliuliuliu  閱讀(9)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 青青草原网站在线观看| 免费无码午夜理论电影| 亚洲乱码精品久久久久..| 色天天天综合网色天天| 中文乱码人妻系列一区二区| 日本欧洲亚洲高清在线| 国产精品不卡区一区二| 亚洲中文字幕无码永久在线| 丰满的人妻hd高清日本| 亚洲成A人片在线观看的电影| 国产毛a片啊久久久久久保和丸 | 啊灬啊灬啊灬快灬高潮了电影片段 | 日韩最新中文字幕| 依依成人精品视频在线观看| 在线无码午夜福利高潮视频| 一本大道无码av天堂| 国产精品久久久久aaaa| 久久热99这里只有精品| 无码一区中文字幕| 亚洲欧洲色图片网站| 一区二区三区国产综合在线| 欧美丰满熟妇乱XXXXX网站| 18禁免费无码无遮挡网站| 久久精品视频一二三四区| 成人精品区| 亚洲香蕉免费有线视频| 精品国产一区av天美传媒| 国产成人无码aa精品一区| 人妻少妇| 国产成人精品亚洲日本语言| 国产中文字幕一区二区| 色欲综合久久中文字幕网| 亚洲精品有码在线观看| 四虎影视4hu4虎成人| 亚洲尤码不卡av麻豆| 弥渡县| 性色av无码久久一区二区三区| 亚洲欧美成人一区二区在线电影| 影音先锋啪啪av资源网站| 亚洲美女少妇偷拍萌白酱| 久久久久国产精品人妻|