Codeforces Round #633(Div.2)

\(A.Filling\ Diamonds\)

答案就是构成的六边形数量+1

//#pragma GCC optimize("O3")
//#pragma comment(linker, "/STACK:1024000000,1024000000")
#include<bits/stdc++.h>
using namespace std;
function<void(void)> ____ = [](){ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);};
using LL = int_fast64_t;
void solve(){
LL n; cin >> n;
cout << n << endl;
}
int main(){
____();
int T;
for(cin >> T; T; T--) solve();
return 0;
}

\(B.Sorted\ Adjacent\ Differences\)

考虑排完序之后从中间开始一左一右选择即可

//#pragma GCC optimize("O3")
//#pragma comment(linker, "/STACK:1024000000,1024000000")
#include<bits/stdc++.h>
using namespace std;
function<void(void)> ____ = [](){ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);};
const int MAXN = 2e5+7;
int n,A[MAXN];
void solve(){
cin >> n;
for(int i = 1; i <= n; i++) cin >> A[i];
sort(A+1,A+1+n);
int mid = n / 2 + 1;
int lp = mid - 1, rp = mid + 1;
cout << A[mid] << ' ';
while(lp!=0 or rp!=n+1){
if(lp!=0) cout << A[lp--] << ' ';
if(rp!=n+1) cout << A[rp++] << ' ';
}
cout << endl;
}
int main(){
____();
int T;
for(cin >> T; T; T--) solve();
return 0;
}

\(C.Powered\ Addition\)

考虑对于每个数,需要加的最小值为其之前的最大值和这个值的差值,然后找到这个差值的最大值找到其二进制最高位即可

//#pragma GCC optimize("O3")
//#pragma comment(linker, "/STACK:1024000000,1024000000")
#include<bits/stdc++.h>
using namespace std;
function<void(void)> ____ = [](){ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);};
const int MAXN = 1e5+7;
using LL = int_fast64_t;
int n;
LL A[MAXN];
void solve(){
cin >> n;
for(int i = 1; i <= n; i++) cin >> A[i];
LL minn = 1e10;
LL delta = 0;
for(int i = n; i >= 1; i--){
delta = max(delta,A[i]-minn);
minn = min(A[i],minn);
}
if(!delta) cout << 0 << endl;
else{
while(delta!=(delta&-delta)) delta -= (delta&-delta);
cout << __builtin_ctz(delta)+1 << endl;
}
}
int main(){
____();
int T;
for(cin >> T; T; T--) solve();
return 0;
}

\(D.Edge\ Weight\ Assignment\)

考虑最少不同的数,各个叶子节点到根的距离的奇偶性如果一样,那么所有边权都可以相等,否则的话用\(1,2,3\)三个数来赋值边权必然可以满足条件

对于最多的不同的数,考虑树形\(DP\),\(dp[i]\)表示以\(i\)为根的子树所用的最多的不同边权,以非叶节点为根进行\(dfs\),考虑转移,对于\(u\)点的所有儿子,如果存在叶子节点的话,\(dp[u]+=1\),叶子节点连上来的边权必然相等,对于儿子中的非叶子节点\(v\),转移为\(dp[u] += dp[v] + 1\),可以假设叶子节点走到儿子节点的权值异或和为\(x\),那么不同儿子子树中的叶子节点走到该儿子节点的异或和可以不同,所以从儿子连到当前点的边权也可以不一样。

//#pragma GCC optimize("O3")
//#pragma comment(linker, "/STACK:1024000000,1024000000")
#include<bits/stdc++.h>
using namespace std;
function<void(void)> ____ = [](){ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);};
const int MAXN = 1e5+7;
using LL = int_fast64_t;
int n,depth[MAXN],f[MAXN];
vector<int> G[MAXN];
bool odd = false, even = false;
void dfs(int u, int par){
depth[u] = depth[par] + 1;
bool zero = false;
if(par and G[u].size()==1){
if(depth[u]&1) odd = true;
else even = true;
}
for(int v : G[u]){
if(v==par) continue;
dfs(v,u);
if(f[v]==0) zero = true;
else f[u] += f[v] + 1;
}
if(zero) f[u]++;
}
int main(){
____();
cin >> n;
for(int i = 1; i < n; i++){
int u, v;
cin >> u >> v;
G[u].emplace_back(v);
G[v].emplace_back(u);
}
int root = 1;
for(int i = 1; i <= n; i++) if(G[i].size()>1) root = i;
dfs(root,0);
cout << ((odd and even)?3:1) << ' ' << f[root] << endl;
return 0;
}

\(C.Perfect\ Triples\)

找规律题

对着表找了半天规律没写出来,我菜死了

用四进制表示每一位,可以打表出来

001 002 003

//1行

010 020 030

011 022 033

012 023 031

013 021 032

//1<<2行

100 200 300

101 202 303

102 203 301

103 201 302

110 220 330

111 222 333

112 223 331

113 221 332

... ... ...

//1<<4行

//#pragma GCC optimize("O3")
//#pragma comment(linker, "/STACK:1024000000,1024000000")
#include<bits/stdc++.h>
using namespace std;
function<void(void)> ____ = [](){ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);};
using LL = int_fast64_t;
void solve(){
LL n; cin >> n;
LL m = (n - 1) / 3 + 1, md = n % 3 ? n % 3 : 3, ret = 0, bit = 1, num = 0, a[4];
if(md==1) a[0] = 3, a[1] = 0, a[2] = 1, a[3] = 2;
else if(md==2) a[0] = 1, a[1] = 0, a[2] = 2, a[3] = 3;
else a[0] = 2, a[1] = 0, a[2] = 3, a[3] = 1;
while(true){
if(bit>=m){
ret += (md<<num);
break;
}
m -= bit;
ret += (a[((m-1) / bit + 1) % 4]<<num);
bit <<= 2, num += 2;
}
cout << ret << endl;
}
int main(){
____();
int T;
for(cin >> T; T; T--) solve();
return 0;
}

Codeforces Round #633 (Div. 2)的更多相关文章

  1. Codeforces Round #366 (Div. 2) ABC

    Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...

  2. Codeforces Round #354 (Div. 2) ABCD

    Codeforces Round #354 (Div. 2) Problems     # Name     A Nicholas and Permutation standard input/out ...

  3. Codeforces Round #368 (Div. 2)

    直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...

  4. cf之路,1,Codeforces Round #345 (Div. 2)

     cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....   ...

  5. Codeforces Round #279 (Div. 2) ABCDE

    Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems     # Name     A Team Olympiad standard input/outpu ...

  6. Codeforces Round #262 (Div. 2) 1003

    Codeforces Round #262 (Div. 2) 1003 C. Present time limit per test 2 seconds memory limit per test 2 ...

  7. Codeforces Round #262 (Div. 2) 1004

    Codeforces Round #262 (Div. 2) 1004 D. Little Victor and Set time limit per test 1 second memory lim ...

  8. Codeforces Round #371 (Div. 1)

    A: 题目大意: 在一个multiset中要求支持3种操作: 1.增加一个数 2.删去一个数 3.给出一个01序列,问multiset中有多少这样的数,把它的十进制表示中的奇数改成1,偶数改成0后和给 ...

  9. Codeforces Round #268 (Div. 2) ABCD

    CF469 Codeforces Round #268 (Div. 2) http://codeforces.com/contest/469 开学了,时间少,水题就不写题解了,不水的题也不写这么详细了 ...

随机推荐

  1. vue中选中弹出框内的表格

    一:可多选情况且对应勾选 由于是弹出框形式,所以会出现新增DOM与数据的改变问题,因此要使用$nextTick,不然一开始弹出得时候DOM还没有生成,却要获取DOM会报错:这种多选情况会出现一个bug ...

  2. 【SpringBoot1.x】SpringBoot1.x 任务

    SpringBoot1.x 任务 文章源码 异步任务 在 Java 应用中,绝大多数情况下都是通过同步的方式来实现交互处理的.但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使 ...

  3. 剑指offer之重建二叉树

    1.问题描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.        例如输入前序遍历序列pre {1,2,4,7,3,5,6, ...

  4. 安装sendmail

    yum install -y sendmail yum install -y sendmail-cf 启动 service sendmail start 发送邮件 cat nihao.txt |mai ...

  5. Upload - Labs (下)

    Pass - 11: 1.查看源代码,发现进行了一次对后缀名替换成空格,因此考虑双写绕过, 2.上传成功, 关键代码: $is_upload = false; $msg = null; if (iss ...

  6. OGG类异常汇总

    1.启动ogg后,进程不ABEND也不向前走 原因:ogg启动后,会收集表的统计信息耗费大量时间,导致进程不往前走 解决:在参数文件中加入 SQLEXEC 'alter session set OPT ...

  7. 【Redis系列】Spring boot实现监听Redis key失效事件

    talk is cheap, show me the code. 一.开启Redis key过期提醒 方式二:修改配置文件 redis.conf # 默认 notify-keyspace-events ...

  8. 大促密集,CDN如何保障电商体验如丝般顺滑?

    简介: 前不久,阿里云技术天团空降CSDN在线峰会,对核心技术竞争力进行解读.其中,阿里云高级技术专家曾福华分享了<双11: CDN如何保障电商大促如丝般顺滑>的议题.俗话说:养兵千日,用 ...

  9. mysql(连接查询和数据库设计)

    --创建学生表 create table students ( id int unsigned not null auto_increment primary key, name varchar(20 ...

  10. 三分钟学会 ASP.NET Core WebApi使用Swagger生成api说明文档

    什么是Swagger?为啥要用Swagger? Swagger可以从不同的代码中,根据注释生成API信息,Swagger拥有强大的社区,并且对于各种语言都支持良好,有很多的工具可以通过swagger生 ...