zoukankan      html  css  js  c++  java
  • D. Marcin and Training Camp

     

    D. Marcin and Training Camp

     

    题目链接:http://codeforces.com/contest/1230/problem/D

    time limit per test:
    3 seconds
    memory limit per test:
    256 megabytes
    input:
    standard input
    output:
    standard output
     
    题目大意:
    要组建一个小组,要求小组中每个人都不比所有人强,当一个人懂得一个算法但是另一个不懂那么前者认为他比后者强。所以这个小组要满足一个人懂得算法必定有另一个人全懂。每个人的技能是不同的,要求出这个小组能组成的技能最大值。
    解题思路:
    这个小组懂得最多算法的那个人必定有另一个人与他懂的算法一样。所以记录所有ai相同的人的ai。可以知道,当一个人比另一个人的ai小且他们的与运算等于小的那个人的ai那么可以知道大的那个人必定强于ai小的那个人。也就是ai小的那个人会的算法另一个人都会。知道了小组中必定有哪些人那么用其他人和这些人比较就可以得到最后小组有哪些人。
    代码:
     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 const int N=1e5;
     5 ll arr1[N];
     6 ll arr2[N];
     7 ll vis[N];
     8 map<ll,ll>cnt;
     9 vector<ll >arr;
    10 int main(){
    11     ll n,l;
    12     ll ans=0;
    13     cin>>n;
    14     for(int i=0;i<n;i++){
    15         scanf("%lld",arr1+i);
    16         cnt[arr1[i]]++;
    17     } 
    18     for(int i=0;i<n;i++){
    19         scanf("%lld",arr2+i);
    20         if(cnt[arr1[i]]>=2){
    21             vis[i]=1;
    22             arr.push_back(arr1[i]);
    23             ans=ans+arr2[i];
    24         }
    25     }
    26     for(int i=0;i<n;i++){
    27         if(vis[i]==0){
    28             l=arr.size();
    29             for(int j=0;j<l;j++){
    30                 if(arr1[i]<arr[j]&&((arr1[i]&arr[j])==arr1[i])){
    31                     arr.push_back(arr1[i]);
    32                     ans=ans+arr2[i];
    33                     break;
    34                 }
    35             }
    36         }
    37     }
    38     cout<<ans<<endl;
    39     
    40     
    41     return 0;
    42 } 

     

  • 相关阅读:
    中国式关系
    太太万岁
    matlab记录运行时间命令
    matlab读xls数据
    matlab,xls转换为mat文件
    matlab里plot设置线形和颜色
    matlab里plot画多幅图像、设置总标题、legend无边框
    matlab显示图像的横纵坐标
    去掉matlab图片空白边缘
    matlab显示原图和灰度直方图
  • 原文地址:https://www.cnblogs.com/meanttobe/p/11581764.html
Copyright © 2011-2022 走看看