Winner Winner【模拟、位运算】

2023-11-09

Winner Winner

题目链接(点击)

题目描述

The FZU Code Carnival is a programming competetion hosted by the ACM-ICPC Training Center of Fuzhou University. The activity mainly includes the programming contest like ACM-ICPC and strive to provide participants with interesting code challenges in the future.
Before the competition begins, YellowStar wants to know which teams are likely to be winners. YellowStar counted the skills of each team, including data structure, dynamic programming, graph theory, etc. In order to simplify the forecasting model, YellowStar only lists M skills and the skills mastered by each team are represented by a 01 sequence of length M. 1 means that the team has mastered this skill, and 0 does not.
If a team is weaker than other teams, this team cannot be a winner. Otherwise, YellowStar thinks the team may win. Team A(a1, a2, ..., aM ) is weaker than team B(b1, b2, ..., bM ) if ∀i ∈ [1, M], ai ≤ bi and ∃i ∈ [1, M], ai < bi.
Since YellowStar is busy preparing for the FZU Code Carnival recently, he dosen’t have time to forecast which team will be the winner in the N teams. So he asks you to write a program to calculate the number of teams that might be winners.

输入

Input is given from Standard Input in the following format:
N M
s1 s2 . . . sN
The binary representation of si indicates the skills mastered by teami.
Constraints
1 ≤ N ≤ 2 × 106
1 ≤ M ≤ 20
0 ≤ si < 2M

输出

Print one line denotes the answer.

样例输入

3 3
2 5 6

样例输出

2

 

题意:

有n个队伍从1~n 有m种技能 十进制数转二进制表示每个队伍对技能的熟练程度 如果是1表示完全掌握 如果是0 没完全掌握 如果任意两支队伍 其中一个的每种技能都<=另外一支队伍 那么这个队伍不可能获胜 输出最终可能获胜的队伍数目

例如: 2 5 6

二进制表示为: 0 1 0 

                          1 0 1

                          1 1 0

每一列代表一支队伍  分别为1、2、3

通过比较1 3 可以把3排除 其余的无论怎么比较都无法再排除 所以最终结果就是 2支队伍 分别是: 1、 2

思路:

看了题解说是dp 感觉也不是dp 就是先记录每个队伍 然后遍历排除其他的队伍 最后统计还剩多少不能排除的

例如: n=3 m=3    2 5 6

从最大值开始循环  6的二进制 1 1 0 可以看出来 6可以覆盖1 0 0 和 0 1 0 和 0 0 0 三个数分别为4 2 0 把它们的vis值变为-1 最后只统计vis值为正的 即是结果 

AC代码:

#include<bits/stdc++.h>
using namespace std;
int vis[(1<<(20))+5];
int main()
{
    int n,m,num;
    scanf("%d%d",&n,&m);
    memset(vis,0,sizeof(vis));
    for(int i=0;i<n;i++){
        scanf("%d",&num);
        vis[num]++;
    }
    int ans=0;
    for(int i=(1<<m)-1;i>=0;i--){
        if(vis[i]!=0){
            if(vis[i]>0){
                ans+=vis[i]; ///vis[]为正ans直接加上
            }
            for(int j=m-1;j>=0;j--){
                if(i&(1<<j)){
                    vis[i^(1<<j)]=-1; ///我感觉该是 vis[(1<<j)]赋值为 -1 但不知道为什么不可
                }               /// 以这样
            }
        }
    }
    printf("%d\n",ans);
    return 0;
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Winner Winner【模拟、位运算】 的相关文章

随机推荐

  • 用Nginx+Redis实现session共享的均衡负载

    原文地址 https segmentfault com a 1190000004708640 前言 大学三年多 也做个几个网站和APP后端 老是被人问到 如果用户多了服务器会不会挂 总是很尴尬的回答 哈哈 我们的用户还少 到了服务器撑不住的
  • 一条链接获取你的照片【附源码】

    测试链接 https sunpma com other xiangjiquanxian 无论是手机还是pc 都会被获取 请谨慎点击 直接申请获取相机权限 拍照上传到服务器 现在众多手机APP乱用权限并窃取用户隐私 大家要注意保护好自己 代码
  • python实现图书管理系统(课设)

    图书管理系统图书管理系统 某图书馆所藏图书如表1所示 书号 书名 出版社 作者 价格 库存 10001 C语言程序设计 清华大学出版社 张三 51 5 10002 Python程序设计基础 高等教育出版社 李四 45 6 借阅信息如表2所示
  • 判读一个对象不为空_【图表专题】高考地理如何考察 学生图表判读能力?

    本文由 地理雷 综合整理 全国知名地理备考平台 地理图表是地理学科的第二语言 也是地理高考命题的重要载体 图文并茂 无图考图 已成为地理命题的特点 因此 把握正确的图表解读方法 充分挖掘图表信息 是保证顺利解答地理试题的前提条件 也是地理学
  • 同济线性代数教材(第五版)-第3章 矩阵的初等变换与线性方程组

    第3章 矩阵的初等变换与线性方程组 3 1矩阵的初等变换 矩阵的初等变换是一种十分重要的运算 它在解线性方程组的解 求逆阵及矩阵理论的探索中都起重要的作用 消元法解线性方程组 为引进矩阵的初等变换 先来分析仪用消元法解线性方程组的例子
  • 集成电路模拟版图入门-版图基础学习笔记(六)

    今日接着给大家分享模拟版图入门学习笔 六 前几期的学习笔记如下 集成电路模拟版图入门 版图基础学习笔记 一 集成电路模拟版图入门 版图基础学习笔记 二 集成电路模拟版图入门 版图基础学习笔记 三 集成电路模拟版图入门 版图基础学习笔记 四
  • three.js中的矩阵计算

    文章目录 1 概述 2 详论 2 1 行主序与列主序列 2 2 矩阵乘法 3 参考 1 概述 three js中自带了矩阵运算库 不过在使用的过程中总是容易混淆 不知道是行主序还是列主序 前乘和后乘也很容易弄反 就在这里辨析一下 2 详论
  • django 实战(8): 自定义User模型

    1 User模型及其对应的auth user表 我们登录数据库终端界面 查看auth user的表结构 如下 base xxx xxx virtual machine AuthDemo sudo psql U dbuser d authdb
  • matlab 两个球面三维图合并于同一坐标系

    clc clear R1 3 球半径 n1 30 网格大小 n 2 2 n 1 theta1 n1 2 n1 n1 pi phi1 0 0 2 n1 n1 pi 2 cosphi1 cos phi1 cosphi1 1 0 cosphi1
  • [MySQL]并发执行事物的时候, 都发生了什么?

    文章目录 1 目标 2 MySQL中事物的四大基本特性 2 1 原子性 2 2 一致性 2 3 持久性 2 4 隔离性 3 并发执行事物出现的问题及解决方案 3 1 什么是并发行为 3 2 并发执行事物出现的问题 3 2 1 问题一 脏读问
  • 使用 Python 进行深度学习以进行裂纹检测

    使用 Python 进行深度学习以进行裂纹检测 问题陈述 数据集准备 训练模型 结论 参考 问题陈述 虽然新技术已经改变了我们生活的方方面面 在建筑领域似乎牛逼 正在努力追赶 目前 建筑物的结构状况仍然主要是人工检查 简单来说 即使现在需要
  • 计数dp

    给一个数n n lt 1000 问将这个n分解成n1 n2 n3 nk的解法有多少 k gt 1 且 n1 gt n2 gt n3 gt nk gt 1 由于答案可能过大 因此答案对1e9 7取模 1 背包问题解决 这里可看作 结果恰好为n
  • 著名人物的博客

    经济学界 Gary Becker Richard Posner 世界著名经济学家 Gary Becker为诺贝尔经济学奖得主 http becker posner blog com Gregory Mankiw 哈佛大学经济学教授 http
  • 基于C++的QT实现贪吃蛇小游戏

    文章目录 一 效果演示 二 实现思路 三 代码实现 widget h widget cpp main cpp 一 效果演示 效果图 代码下载 二 实现思路 通过按键控制蛇的移动 每吃一个商品蛇身就会加长 如果蛇身头尾相碰就结束游戏 声明渲染
  • TSI系统测量参数之:转速和零转速

    一 TSI系统测量参数 1 轴向位移 2 盖振或瓦振 3 偏心 4 键相 5 零转速 6 轴向振动 7 相对热膨胀 胀差 8 绝对热膨胀 缸胀 二 各参数作用 1 零转速与转速 1 零转速 主要用在汽机转速到零时投盘车的连锁以及对大机转速的
  • mac下的各种sed、grep、ag命令查看日志好用

    sed命令 删除文件的前100行 注意mac上要加个空字符串 sed i 1 100d 404 log 查看文件若干行 输出文件的5 8行 sed n 5 8p 1156 success txt 输出文件的5 8行至11 txt sed n
  • 动态DPC算法学习

    造成坏点的原因 感光元件芯片自身工艺技术瑕疵造成 光线采集存在缺陷 制造商产品差异 坏点分类 hot pixel 固定保持较高的像素值 一般呈现为画面高亮的点 dead pixel 固定保持较低的像素值 一般在画面中呈现为暗点 noise
  • 华为OD机试-磁盘容量排序

    题目描述 磁盘的容量单位常用的有M G T 他们之间的换算关系为 1T 1024G 1G 1024M 现在给定n块磁盘的容量 请对他们按从小到大的顺序进行稳定排序 例如给定5块盘的容量 5 1T 20M 3G 10G6T 3M12G9M 排
  • CSS基础学习——动画

    一 CSS3 2D变形 利用Transfrom方法 1 rotate angle 元素顺时针旋转给定的角度 允许负值 元素将逆时针旋转
  • Winner Winner【模拟、位运算】

    Winner Winner 题目链接 点击 题目描述 The FZU Code Carnival is a programming competetion hosted by the ACM ICPC Training Center of