2017ACM/ICPC广西邀请赛 CS Course

题意:删除指定数字,求剩下数字的与或非值

解法:保存一下前缀和后缀

复制代码
 1 #include <iostream>
 2 #include <stdio.h>
 3 #include <vector>
 4 #include <string.h>
 5 #include <map>
 6 using namespace std;
 7 int x1[123456],y1[123456],z1[123456];
 8 int x2[123456],y2[123456],z2[123456];
 9 int num[123456];
10 map<int,int>Mp;
11 int n,m;
12 map<int,int>::iterator it;
13 int main(){
14     while(~scanf("%d%d",&n,&m)){
15         memset(x1,0,sizeof(x1));
16         memset(y1,0,sizeof(y1));
17         memset(z1,0,sizeof(z1));
18         memset(x2,0,sizeof(x2));
19         memset(y2,0,sizeof(y2));
20         memset(z2,0,sizeof(z2));
21         for(int i=1;i<=n;i++){
22             scanf("%d",&num[i]);
23         }
24         x1[2]=num[1];
25         x2[n-1]=num[n];
26         y1[2]=num[1];
27         y2[n-1]=num[n];
28         z1[2]=num[1];
29         z2[n-1]=num[n];
30         for(int i=3;i<=n;i++){
31             x1[i]=x1[i-1]^num[i-1];
32         }
33         for(int i=n-2;i>=1;i--){
34             x2[i]=x2[i+1]^num[i+1];
35         }
36         for(int i=3;i<=n;i++){
37             y1[i]=y1[i-1]|num[i-1];
38         }
39         for(int i=n-2;i>=1;i--){
40             y2[i]=y2[i+1]|num[i+1];
41         }
42         for(int i=3;i<=n;i++){
43             z1[i]=z1[i-1]&num[i-1];
44         }
45         for(int i=n-2;i>=1;i--){
46             z2[i]=z2[i+1]&num[i+1];
47         }
48         while(m--){
49             int ans;
50             scanf("%d",&ans);
51             if(ans==1){
52                 printf("%d %d %d\n",z2[ans],y2[ans],x2[ans]);
53             }else if(ans==n){
54                 printf("%d %d %d\n",z1[ans],y1[ans],x1[ans]);
55             }else{
56                 printf("%d %d %d\n",z2[ans]&z1[ans],y2[ans]|y1[ans],x2[ans]^x1[ans]);
57             }
58         }
59     }
60     return 0;
61 }
复制代码

 

posted @   樱花落舞  阅读(258)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示