Codeforces 959 E. Mahmoud and Ehab and the xor-MST 思路:找规律题,时间复杂度O(log(n))
题目:
解题思路
这题就是0,1,2…n-1总共n个数字形成的最小生成树。
我们可以发现,一个数字k与比它小的数字形成的异或值,一定可以取到k与所有正整数形成的异或值的最小值。
要计算n个数字的情况我们可以通过n-1个数字的情况得来,意为前n-1个数字的最小生成树已经生成好了,我们需要给第n个数字连一条边,使新的树为n个数字的最小生成树。
通过找规律我们可以发现:
1. 每隔2个数字多一个权值为1的边。
2. 每隔4个数字多一个权值为2的边。
3. 每隔8个数字多一个权值为4的边。
4. ……
5. 每隔2^n个数字多一个权值为2^(n-1)的边。
我们把这些边加起来可以推出这样一个公式:
注意除以2^(i+1)和乘2^i不能直接抵消,因为这里的数字全是int型,没有小数。
时间复杂度:
O(log(n))
代码:
#include<bits\stdc++.h>
using namespace std;
typedef long long ll;
int main(){ll n;while(cin >> n){n--;int m = log(n)/log(2);ll ans = 0;for(int i = 0;i <= m; i++){ans += ((ll)(n+pow(2,i))/(ll)pow(2,i+1))*(ll)pow(2,i);}cout << ans << endl;}return 0;
}
Codeforces 959 E. Mahmoud and Ehab and the xor-MST 思路:找规律题,时间复杂度O(log(n))相关推荐
- 【CodeForces - 1027B 】Numbers on the Chessboard (没有营养的找规律题,无聊题)
题干: You are given a chessboard of size n×nn×n. It is filled with numbers from 11 to n2n2 in the foll ...
- 【CodeForces - 471C】MUH and House of Cards (思维,找规律)
题干: Polar bears Menshykov and Uslada from the zoo of St. Petersburg and elephant Horace from the zoo ...
- Educational Codeforces Round 87 (Rated for Div. 2) C1+C2(几何图形/找规律)
C1传送门 C2传送门 给出一个正2n边形,求出其最小外接正方形的边长 当n为偶数时 不难发现正多边形刚好有四条边和正方形的四条边重合,观察发现该正多边形的边长刚好为内接圆的直径 当n为奇数时 第一眼 ...
- Codeforces 862B - Mahmoud and Ehab and the bipartiteness
862B - Mahmoud and Ehab and the bipartiteness 思路:先染色,然后找一种颜色dfs遍历每一个点求答案. 代码: #include<bits/stdc+ ...
- Codeforces Round #715 (Div. 1) B. Almost Sorted 找规律
传送门 文章目录 题意: 思路: 题意: 思路: 找规律yydsyydsyyds. 一看没什么想法,所以打了个表,好家伙,不打不知道,一打不得了,下面是n=6n=6n=6的符合要求的情况: 不难发现, ...
- Codeforces Round #737 (Div. 2)---C. Moamen and XOR
Codeforces Round #737 (Div. 2)-C. Moamen and XOR Moamen and Ezzat are playing a game. They create an ...
- [codeforces 1333A] Little Artem 读懂题+找规律+多举例
Codeforces Round #632 (Div. 2) 比赛人数12810 [codeforces 1333A] Little Artem 读懂题+找规律+多举例 总目录详见http ...
- [codeforces 1327E] Count The Blocks 打表找规律+根据规律找公式+优化公式
Educational Codeforces Round 84 (Rated for Div. 2) 比赛人数13522 [codeforces 1327E] Count The Blocks ...
- CodeForces - Insertion Sort(打表找规律)
题目链接:http://codeforces.com/gym/101955/problem/C Time limit:6.0 s Memory limit:1024 MB Problem Descri ...
最新文章
- 博客园第一天,开放封闭原则
- ajax可以发送文件,通过Ajax上传img时如何发送文件信息
- php socket主动推送消息,PHP使用WebSocket主动推送【微信小程序接收】
- FPGA ROM存储器设计
- Oracle 实用技巧
- unity3d 射击游戏BOSS行为代码
- Android 第三方应用接入微信平台(2)
- KeyShot中该怎么添加反射地平面
- 软件测试面试题(一)
- 南航计算机学院院长黄志球简历,南航计算机科学与技术学院导师介绍:沈国华...
- 计算机护眼模式怎么设置的,为你解答电脑护眼设置怎么开
- 连接校园网后登不上图书馆里的SCI等网站问题
- 使用gimp批量处理图片
- android ipv6测试,搭建IPv6本地环境测试App
- css表格省略号,CSS 文本和表格中文字溢出显示省略号
- 无为的生活中有所感悟的一篇劝勉高考生的文章
- TDChat国内ChatGPT镜像网站最新网站入口地址
- 软件缺陷及其生命周期
- 两垂直向量的外积计算
- 微信小程序使用色彩字体图标(笔录)
热门文章
- Java黑皮书课后题第10章:*10.20(近似e)编程练习题5.26使用下面数列近似计算e(略),为了得到更好的精度,在计算中使用25位精度的BigDecimal
- Java黑皮书课后题第8章:*8.7(距离最近的两个点)程序清单8-3给出了找到二维空间中距离最近的两个点的程序。修改该程序,让程序能找出在三维空间上距离最近的两个点
- Java黑皮书课后题第7章:7.16(执行时间)编写程序,随机产生一个包含100 000个整数的数组和一个关键字。估算调用程序清单7-6中的linearSearch方法的执行时间
- S2SH框架入门之使用hibernate进行基础的增删改查
- 位运算的应用和分治法在二进制中的应用
- 子页面赋值给父页面:window.opener.document.getElementById
- webpack中使用jquery
- 正弦水波纹波动画 - SJWaveView
- Android初级教程获取手机系统联系人信息
- 【03】json使用