• POJ2454 Jersey Politics


    随机化算法。

    亲身试验贪心会T。

    所以排序,然后在前2*k个数中随机交换。

    祝大家新年快乐。

     1 #include<algorithm>
     2 #include<cstdlib>
     3 #include<cstdio>
     4 #include<cstring>
     5 #include<iostream>
     6 using namespace std;
     7 int k,tmp,cnt1,cnt2;
     8 struct node
     9 {
    10     int id,s;
    11     bool operator<(const node &b)const{
    12         return s>b.s;
    13     }
    14 }q[200];
    15 int main()
    16 {
    17     scanf("%d",&k);
    18     tmp=k*500;
    19     for(int i=1;i<=k*3;++i)
    20     {
    21         q[i].id=i;scanf("%d",&q[i].s);
    22     }
    23     int cnt=0;
    24     sort(q+1,q+1+3*k);
    25     while(1)
    26     {
    27         cnt1=cnt2=0;
    28         for(int i=1;i<=k;++i)
    29         {
    30             cnt1+=q[i].s;
    31         }
    32         for(int i=k+1;i<=k*2;++i)
    33         {
    34             cnt2+=q[i].s;
    35         }
    36         if(cnt1>tmp&&cnt2>tmp)
    37         {
    38             for(int i=1;i<=k*3;++i)
    39             cout<<q[i].id<<endl;
    40             return 0;
    41         }
    42         swap(q[rand()%k+1],q[rand()%k+k+1]);
    43         cnt++;
    44     }
    45     return 0;
    46 }
  • 相关阅读:
    mysql对表操作的各种语句
    Map遍历两种方式
    hibernate3
    Spring、mybaits整合
    mybaits注解
    mybaits 框架运用
    mybatis入门
    限制文本框字符数
    Unity3D Mathf函数
    Unity3d 粒子工具注释
  • 原文地址:https://www.cnblogs.com/nbwzyzngyl/p/8231383.html
Copyright © 2020-2023  润新知