题目:
  
  解题思路
这题就是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))相关推荐

  1. 【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 ...

  2. 【CodeForces - 471C】MUH and House of Cards (思维,找规律)

    题干: Polar bears Menshykov and Uslada from the zoo of St. Petersburg and elephant Horace from the zoo ...

  3. Educational Codeforces Round 87 (Rated for Div. 2) C1+C2(几何图形/找规律)

    C1传送门 C2传送门 给出一个正2n边形,求出其最小外接正方形的边长 当n为偶数时 不难发现正多边形刚好有四条边和正方形的四条边重合,观察发现该正多边形的边长刚好为内接圆的直径 当n为奇数时 第一眼 ...

  4. Codeforces 862B - Mahmoud and Ehab and the bipartiteness

    862B - Mahmoud and Ehab and the bipartiteness 思路:先染色,然后找一种颜色dfs遍历每一个点求答案. 代码: #include<bits/stdc+ ...

  5. Codeforces Round #715 (Div. 1) B. Almost Sorted 找规律

    传送门 文章目录 题意: 思路: 题意: 思路: 找规律yydsyydsyyds. 一看没什么想法,所以打了个表,好家伙,不打不知道,一打不得了,下面是n=6n=6n=6的符合要求的情况: 不难发现, ...

  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 ...

  7. [codeforces 1333A] Little Artem 读懂题+找规律+多举例

    Codeforces Round #632 (Div. 2)   比赛人数12810 [codeforces 1333A]   Little Artem   读懂题+找规律+多举例 总目录详见http ...

  8. [codeforces 1327E] Count The Blocks 打表找规律+根据规律找公式+优化公式

    Educational Codeforces Round 84 (Rated for Div. 2)   比赛人数13522 [codeforces 1327E]  Count The Blocks  ...

  9. CodeForces - Insertion Sort(打表找规律)

    题目链接:http://codeforces.com/gym/101955/problem/C Time limit:6.0 s Memory limit:1024 MB Problem Descri ...

最新文章

  1. 博客园第一天,开放封闭原则
  2. ajax可以发送文件,通过Ajax上传img时如何发送文件信息
  3. php socket主动推送消息,PHP使用WebSocket主动推送【微信小程序接收】
  4. FPGA ROM存储器设计
  5. Oracle 实用技巧
  6. unity3d 射击游戏BOSS行为代码
  7. Android 第三方应用接入微信平台(2)
  8. KeyShot中该怎么添加反射地平面
  9. 软件测试面试题(一)
  10. 南航计算机学院院长黄志球简历,南航计算机科学与技术学院导师介绍:沈国华...
  11. 计算机护眼模式怎么设置的,为你解答电脑护眼设置怎么开
  12. 连接校园网后登不上图书馆里的SCI等网站问题
  13. 使用gimp批量处理图片
  14. android ipv6测试,搭建IPv6本地环境测试App
  15. css表格省略号,CSS 文本和表格中文字溢出显示省略号
  16. 无为的生活中有所感悟的一篇劝勉高考生的文章
  17. TDChat国内ChatGPT镜像网站最新网站入口地址
  18. 软件缺陷及其生命周期
  19. 两垂直向量的外积计算
  20. 微信小程序使用色彩字体图标(笔录)

热门文章

  1. Java黑皮书课后题第10章:*10.20(近似e)编程练习题5.26使用下面数列近似计算e(略),为了得到更好的精度,在计算中使用25位精度的BigDecimal
  2. Java黑皮书课后题第8章:*8.7(距离最近的两个点)程序清单8-3给出了找到二维空间中距离最近的两个点的程序。修改该程序,让程序能找出在三维空间上距离最近的两个点
  3. Java黑皮书课后题第7章:7.16(执行时间)编写程序,随机产生一个包含100 000个整数的数组和一个关键字。估算调用程序清单7-6中的linearSearch方法的执行时间
  4. S2SH框架入门之使用hibernate进行基础的增删改查
  5. 位运算的应用和分治法在二进制中的应用
  6. 子页面赋值给父页面:window.opener.document.getElementById
  7. webpack中使用jquery
  8. 正弦水波纹波动画 - SJWaveView
  9. Android初级教程获取手机系统联系人信息
  10. 【03】json使用