传送门

题意

分析

模拟一颗二叉树,找到待修改的节点然后向上维护即可

代码

#pragma GCC optimize(3)
#include <bits/stdc++.h>
#define debug(x) cout<<#x<<":"<<x<<endl;
#define dl(x) printf("%lld\n",x);
#define di(x) printf("%d\n",x);
#define _CRT_SECURE_NO_WARNINGS
#define pb push_back
#define mp make_pair
#define all(x) (x).begin(),(x).end()
#define fi first
#define se second
#define SZ(x) ((int)(x).size())
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> PII;
typedef vector<int> VI;
const int INF = 0x3f3f3f3f;
const int N = 2e6 + 10;
const ll mod = 1000000007;
const double eps = 1e-9;
const double PI = acos(-1);
template<typename T>inline void read(T &a) {char c = getchar(); T x = 0, f = 1; while (!isdigit(c)) {if (c == '-')f = -1; c = getchar();}while (isdigit(c)) {x = (x << 1) + (x << 3) + c - '0'; c = getchar();} a = f * x;
}
int gcd(int a, int b) {return (b > 0) ? gcd(b, a % b) : a;}
char str[N];
int tr[N];
int id[N];
int pos[N];
int n,m;void bfs(){queue<int> q;q.push(1);int k = pow(2,n) - 1,p = k;while(q.size()){int t = q.front();q.pop();pos[k] = t;id[t] = k--;int x = t << 1 | 1,y = t << 1;if(x <= p) q.push(x),q.push(y);}
}void build(int u){if(u > pow(2,n) - 1) {tr[u] = 1;return;}build(u << 1),build(u << 1 | 1);if(str[id[u]] == '0'){tr[u] = tr[u << 1];}if(str[id[u]] == '1'){tr[u] = tr[u << 1 | 1];}if(str[id[u]] == '?'){tr[u] = tr[u << 1] + tr[u << 1 | 1];}
}void dfs(int u){if(str[id[u]] == '0'){tr[u] = tr[u << 1];}if(str[id[u]] == '1'){tr[u] = tr[u << 1 | 1];}if(str[id[u]] == '?'){tr[u] = tr[u << 1] + tr[u << 1 | 1];}if(u == 1) return;dfs(u / 2);
}int main() {read(n);scanf("%s",str + 1);read(m);bfs();build(1);while(m--){int id;char a[3];scanf("%d%s",&id,a);str[id] = *a;dfs(pos[id]);di(tr[1]);}return 0;
}

CodeForces 1535D : Playoff Tournament 二叉树相关推荐

  1. 【平衡二叉树】D. Playoff Tournament

    D. Playoff Tournament 题意:有2^k个队伍参加一场比赛,队伍之间按序号两两比赛 给你一个字串s,代表每场比赛的胜负条件,满足 当s[i] 为0时,下标小的队伍获胜 当s[i] 为 ...

  2. D. Playoff Tournament

    D. Playoff Tournament Example inputCopy 3 0110?11 6 5 1 6 ? 7 ? 1 ? 5 ? 1 1 outputCopy 1 2 3 3 5 4 线 ...

  3. Educational Codeforces Round 110 (Rated for Div. 2)D Playoff Tournament

    题目大意: 给你一个k,一共有k+1支队伍,按编号顺序进行k次淘汰赛 再给你一串字符串代表每个比赛的结果 如果是1代表编号大的那支队伍赢 如果是0代表编号小的那支队伍赢 如果是?代表可能编号大的赢也可 ...

  4. Educational Codeforces Round 110 (Rated for Div. 2) D. Playoff Tournament

    传送门 题意:给你含有2^k-1个节点的满二叉树,对于叶子节点权值:'?' = 2, '1' = 1, '0' = 1; 对于非叶子节点 '?' = lsn + rsn, '1' = rsn, '0' ...

  5. CodeForces - 1569B Chess Tournament

    CodeForces - 1569B AYIT609第一周周赛(2021) A chess tournament will be held soon, where n chess players wi ...

  6. CodeForces 356A - Knight Tournament

    题目背景和大致意思是,王国要举行骑士比赛. 骑士编号从1-N:开始给定骑士的数目和比赛的场数. 接着每一行给定一个区间L和R,和一个骑士编号X,区间L-R里面的人都被X击败. 骑士被击败以后就出局,不 ...

  7. CF1535D. Playoff Tournament(线段树维护)

    题目链接 题意: 前去洛谷自行观看吧链接放上了:https://www.luogu.com.cn/problem/CF1535D 分析: 正向并不能看出来什么,反向的话就是构成了一颗线段树,直接维护这 ...

  8. Educational Codeforces Round 110 div.2 A~F题解

    视频讲解:BV1254y137Rn A. Fair Playoff 题目大意 有 444 位选手参加比赛,第 iii 位选手的水平为 si(1≤si≤100)s_i(1 \leq s_i \leq 1 ...

  9. 大一下第十四周学习笔记

    周二 6.1(dp) 这周开始刷kuangbin基础dp专题.昨天写高数作业去了没训练 A - Max Sum Plus Plus(dp空间与时间优化) 这题的dp方程我写出来了,但是感觉空间也炸时间 ...

最新文章

  1. [Unity3D]总结使用Unity 3D优化游戏运行性能的经验
  2. 在代码中定义一个执行线程的步骤
  3. 强制杀oracle进程
  4. nginx 查看 $1,$2,$3
  5. OpenCV2.2的编译及其使用
  6. spring 使用小记
  7. iOS开发中静态库制作 之.a静态库制作及使用篇
  8. Mycat 设置全局序列号
  9. informix利用dbaccess倒出数据
  10. 优化MyBatis配置文件中的配置
  11. 激光雷达点云数据处理一(Terrasolid软件安装)
  12. 扇贝有道180921每日一句
  13. 2017年秋季学期获“领跑衫”感言
  14. 计算机控制技术毕业论文题目,计算机控制方面论文选题 计算机控制论文题目怎样定...
  15. 讯飞在线语音TTS队列策略
  16. java delayqueue_详解java中DelayQueue的使用
  17. 学英语《每日一歌》之brave
  18. TaHomA:一套让你在iPad上控制房子,将其变身智能房屋的神奇系统
  19. Visual C++ 新增功能(2003 - 2015)
  20. 京东数科前端岗位面历

热门文章

  1. 学会了GDB,就像山顶洞人学会了钻木取火
  2. 林仕鼎谈架构设计与架构师
  3. 设计师:值得长期关注的网站
  4. 贵金属交易中做空操作注意事项
  5. configure:13646: error: possibly undefined macro: AC_MSG_ERROR
  6. 【论文学习】《Parallel WaveGAN: A fast waveform generation model based on generative adversarial networks》
  7. java解析html_Java解析Html
  8. 心系冬奥 翰墨传情 |当代书画名家为奥运加油书画推介展【李珂篇】
  9. csdn 最小向量乘积
  10. Elasticsearch: Reindex 接口