TreeMind树图在线AI思维导图

位运算思维导图

  收藏
  分享
免费下载
免费使用文件
Mr.Xu 浏览量:22023-05-06 20:28:55
已被使用1次
查看详情位运算思维导图

位运算

树图思维导图提供 位运算 在线思维导图免费制作,点击“编辑”按钮,可对 位运算  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:ba7341139eea32cb67900ec69f95a8f1

思维导图大纲

位运算思维导图模板大纲

课后作业

1247:河中跳房子

思路

这就是一道典型的二分答案(最大的最小值)模板题

做法

#include<bits/stdc++.h> using namespace std; int a[50005],L,n,m; int check(int x){ int past=a[1],cnt=0; for(int i=2;i<=n+2;i++){ if(a[i]-past>=x) past=a[i]; else cnt++; } return cnt; } int main(){ cin>>L>>n>>m; a[n+2]=L; a[1]=0; for(int i=2;i<=n+1;i++) scanf("%d",&a[i]); int l=1,mid,r=a[n+2]-a[1]; while(l<r){ mid=(l+r+1)/2; if(check(mid)<=m) l=mid; else r=mid-1; } cout<<l; return 0; }

1238:一元三次方程求解

思路

这里的函数我们无法知道函数图像是怎么样的,有可能是上升,有可能是下降,还有可能是上升再下降再上升。所以我们只能根据题目给的条件,两个根之差一定大于1,并且画一下图便可知,有三种情况1.l与r的差大于1,这种情况下可能有解2.l与r代入方程之后值同号,这样有且可能有两个解3.l与r的差大于1且l与r代入方程后值同好,这一定无解

做法

double check(double x){ return a*x*x*x+b*x*x+c*x+d; } void check1(double l,double r){ if(r-l<1&&check(l)*check(r)>0) return;//这种情况一定无解,所以返回 double mid=(l+r)/2; if(abs(check(mid)-0)<=0.001){//精度 printf("%.2lf ",mid); return ; } //分成两个部分继续找剩余解 check1(l,mid); check1(mid,r); }

1433:【例题1】愤怒的牛

思路

做法与河中跳房子基本一致,只需要初始化一下就行

做法

for(int i=1;i<=n;i++){ scanf("%d",&a[i]); maxn=max(a[i],maxn); minn=min(a[i],minn); } sort(a+1,a+1+n); int k=n-m; int l=1,r=maxn-minn+1,mid;

本课内容

位运算

只用于整形操作数,通常分为两类。1.逻辑运算符(位与&,位或|,异或^,取反~)2.位运算符(左移<<,右移>>)

位与&

操作对象同时为1才为1,否则为0

功能

用于二进制取位操作,如一个数&1就是取二进制末尾,&100就是取二进制倒数第三位

判断一个数的奇偶性,n%2==0可以替换成(n%1)==0

位或|

操作对象只要与一个为1即为1,否则为0

功能

用与二进制数无条件赋值,例如一个数|1,就是将末位强制转化为1,|100就是将倒数第三位强制转化为1

如果要把二进制数末位变成0,只需要|1再-1就行了

异或^

操作对象不同为1,相同为0

功能

可用于简单的加密,因为a^b^b=a,所以可以把a当成原文,b当成密钥。

位运算的等级极低,操作时候最好都添上符号以防万一

相关思维导图模板

公司人员架构思维导图

树图思维导图提供 公司人员架构 在线思维导图免费制作,点击“编辑”按钮,可对 公司人员架构  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:4afad0c365522f7c6b93ab261b1414de

配位滴定法思维导图

树图思维导图提供 配位滴定法 在线思维导图免费制作,点击“编辑”按钮,可对 配位滴定法  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:af6ae36af9c3006a77f617d2e55a0fb2