Gym - 100203A Ariel 暴力+位运算

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情
题意:第i种生物有k[i]个特征,分数是score[i],现在要参加竞赛,报出一种生物a,和一些特征h[i],参加竞赛的所有生物在这些h[i]上面的特征是一样的,a生物有h[i],则所有竞赛的生物都必须有h[i],a生物没有,竞赛的生物也没有,没有提到的则不用管。问你在竞赛中a的排名

思路:特征最多只有10中,所有可以用二进制的每一位表示特征的状态,并记录下每种状态下的生物的类型。现在给你生物的状态,首先要求出能参加竞赛的生物的种类。当 (i&p == t[a]&p) 时,所有拥有i状态的生物就是可以参加竞赛的。再用二分找到在这些类型中a的位置,加起来便是排名了

 

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <fstream>
 4 #include <algorithm>
 5 #include <cmath>
 6 #include <deque>
 7 #include <vector>
 8 #include <queue>
 9 #include <string>
10 #include <cstring>
11 #include <map>
12 #include <stack>
13 #include <set>
14 #define LL long long
15 #define eps 1e-8
16 #define INF 0x3f3f3f3f
17 #define MAXN 10005
18 using namespace std;
19 int G[1100][MAXN];
20 int s[MAXN], t[MAXN];
21 vector<int> f[1100];
22 int main()
23 {
24 #ifndef ONLINE_JUDGE
25     freopen("in.txt", "r", stdin);
26     //freopen("out.txt", "w", stdout);
27 #endif // OPEN_FILE
28     int n, k, m;
29     scanf("%d%d", &n, &k);
30     int x, y, p;
31     for(int i = 0; i < 1025; i++){
32         G[i][0] = 0;
33     }
34     for(int i = 1; i <= n; i++){
35         scanf("%d%d", &s[i], &y);
36         p = 0;
37         for(int j = 1; j <= y; j++){
38             scanf("%d", &x);
39             p |= 1 << (x - 1);
40         }
41         f[p].push_back(s[i]);
42         t[i] = p;
43         G[p][0]++;
44         G[p][G[p][0]] = s[i];
45     }
46     for(int i = 0; i <= 1025; i++){
47         sort(G[p], G[p] + G[p][0]);
48         sort(f[i].begin(), f[i].end());
49     }
50     scanf("%d", &m);
51     int q;
52     int ans;
53     for(int i = 1; i <= m; i++){
54         scanf("%d%d", &x, &y);
55         p = 0;
56         for(int j = 1; j <= y; j++){
57             scanf("%d", &q);
58             p |= 1 << (q - 1);
59         }
60         ans = 1;
61         for(int i = 0; i <= 1025; i++){
62             if((i & p) != (t[x] & p))continue;
63             ans += f[i].size() - (upper_bound(f[i].begin(), f[i].end(), s[x]) - f[i].begin());
64             continue;
65             int left = 1, right = G[i][0];
66             while(left < right){
67                 int mid = (left + right) >> 1;
68                 if(G[i][mid] > s[x]){
69                     right = mid;
70                 }
71                 else{
72                     left = mid + 1;
73                 }
74             }
75             if(G[i][left] == s[x]) continue;
76             //ans += left - 1;
77             //continue;
78             if(G[i][left] > s[x]){
79                 ans += left;
80             }
81             else if(G[i][left] < s[x]){
82                 ans += left - 1;
83             }
84             //ans += left;
85             //if(G[i][left] == s[x])
86             //ans += left -1;
87         }
88         printf("%d\n", ans);
89     }
90 }

 

On-Device-Meeting-Notes-State-Transition-Invariant-Checker-v1.0-原创源码与文档.zip 本批资源均为独立编写的可运行 JavaScript 工程工具,包含完整源码、README、MIT License、原创与授权声明、可复现示例、自动化测试、离线 JSON/HTML/SVG 报告和真实运行截图。适合前端开发、AI 工程、自动化测试及技术研究人员用于本地预检、证据整理和二次开发。运行环境为 Node.js 18+,压缩包不含账号、密钥、Cookie、模型权重、品牌素材或第三方受限内容。 立即下载

相关推荐

ASCII-Asset-Generation-State-Transition-Invariant-Checker-v1.0-原创源码与文档.zip

本批资源均为独立编写的可运行 JavaScript 工程工具,包含完整源码、README、MIT License、原创与授权声明、可复现示例、自动化测试、离线 JSON/HTML/SVG 报告和真实运行截图。适合前端开发、AI 工程、自动化测试及技术研究人员用于本地预检、证据整理和二次开发。运行环境为 Node.js 18+,压缩包不含账号、密钥、Cookie、模型权重、品牌素材或第三方受限内容。

科技园区如何精准评估和招引高潜力科创项目?.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。

Eplan 图框 大小:A3

大小:A3 链接属性:位置代号,高层代号,公司名称,项目描述,页类型,图号 修订属性:修订名(出自修订信息跟踪) [1]~[3];修订索引(出自修订信息跟踪) [1]~[3];增补说明 [1]~[6];修订日期(出自修订信息跟踪) [1]~[3];修订创建者(出自修订信息跟踪) [1]~[3];

某大医院消防系统图.dwg.rar

某大医院消防系统图.dwg.rar

空调控制柜原理图.dwg.rar

空调控制柜原理图.dwg.rar

技术转移机构如何科学评估技术成果的转化价值?.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。

某地下室变电所布置图.pdf.rar

某地下室变电所布置图.pdf.rar

某220kV变电站站用电系统.dwg.rar

某220kV变电站站用电系统.dwg.rar

科技园区如何精准招引符合产业定位的科创项目?.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。

高校如何提升科研项目质量,提高申报成功率?.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。

政府科技项目评审效率低,如何利用大数据提升评审质量?.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。

某电排站电气主接线图.dwg.rar

某电排站电气主接线图.dwg.rar

鲁大师-2021.06.09

鲁大师-2021.06.09

客运站电气设计方案.pdf.rar

客运站电气设计方案.pdf.rar

上一篇: Gym - 100203I I WIN 网络流
下一篇: Gym - 100203G Good elements 水+模拟
Macan7
博客等级 码龄14年 2粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值