首页 > 其他分享 >输出分形

输出分形

时间:2024-11-13 19:22:46浏览次数:1  
标签:输出 return int dfs 分形 ui ans

T1

有形如下分形

0 1 0 2 0 1 0 3
1 1 2 2 1 1 3 3
0 2 0 2 0 3 0 3
2 2 2 2 3 3 3 3
0 1 0 3 0 1 0 3
1 1 3 3 1 1 3 3
0 3 0 3 0 3 0 3
3 3 3 3 3 3 3 3

输出他.

Sol

略.

T2

多组询问,每次问如上分形坐标 \((x,y)\) 处的数.(第 \(x\) 行第 \(y\) 列)

Sol 1

dfs.

typedef unsigned int ui;
int dfs(ui x, ui y, int c) {
	if (c == 1) return (x != 1) || (y != 1);
	if (x > y) swap(x, y);
	ui p = 1 << (c - 1);
	int ans = 0;
	if (x <= p && y <= p) ans = dfs(x, y, c - 1);
	else if (x <= p && y > p) ans = dfs(x, y - p, c - 1), ans += ans == c - 1;
	else if (x > p) ans = dfs(x - p, y - p, c - 1), ans += ans == c - 1;
	else return assert(0), 0;
	return ans;
}

void solve() {
	ui x, y;
	scanf("%u%u", &x, &y);
	printf("%d\n", dfs(x, y, 31));
}

效率低、代码长.

Sol 2

观察发现很奇妙的结论.

void solve() {
	int x, y;
	scanf("%d%d", &x, &y);
	printf("%d\n", __builtin_ctz(~((x - 1) | (y - 1))));
}

总结

根据这个结论,我们可以轻松输出如上分形!

标签:输出,return,int,dfs,分形,ui,ans
From: https://www.cnblogs.com/laijinyi/p/18544592

相关文章

  • 管道符 (|) 是 Unix/Linux 系统中用于将一个命令的输出传递给另一个命令作为输入的符
    一、管道符管道符(|)是Unix/Linux 系统中用于将一个命令的输出传递给另一个命令作为输入的符号。它是命令行和shell脚本中非常常用的工具,允许你将多个命令链接在一起,形成数据处理管道。1、管道符的用法最基本的用法是将一个命令的输出传递给另一个命令。例如,以下命令将l......
  • C题目:写一个函数,计算一个字符串的长度。在main函数中输入字符串,并输出其长度。
    题目要求如下:写一个函数,计算一个字符串的长度。在main函数中输入字符串,并输出其长度。提示:(1)定义intlength(char*p)函数,统计指针变量p指向的字符数组中的字符个数,返回其字符个数。(2)在main函数中,输入一个字符串,存入字符数组,调用length函数,求出字符串的长度,输出其长度值。代......
  • C小题目:输入10个整数,将其中最小的数与第1个数对换,将最大的数与最后一个对换。要求写3
    题目要求如下:输入10个整数,将其中最小的数与第1个数对换,将最大的数与最后一个对换。要求写3个函数:(1)输入10个数;(2)进行处理;(3)输出10个数。提示:(1)定义voidinput(int*p)函数,用来输入10个整数,存放到指针变量p所指向的数组中;(2)定义voidmax_min_value(int*p)函数,在指针变量p所指......
  • 多组数据组合输出成表格
    需求如下:有一组变量,数量不确定,变量的取值是1-n个,组合每个变量的各种取值得到图2的结果并保存为文件。 (图1) (图2)直接上代码:一、先定义要导出的数据结构namespaceTestAppendCellData{publicclassExportDataDriverTemplateData{///<summary>......
  • Flink日志输出查看方式 通过web页面 Stdout 查看控制台日志
    Flink日志输出查看方式在网上查看flink日志查看方式,竟然查询不到,因此写下这篇文章,给有此困惑的小盆友们,也给自己做个总结!前情提要:我是通过flinkwebui提交的flink任务的,因此通过flinkui查看自身控制台打印输出的。第一步:打开flink的Dashboard看到TaskManager的控制面......
  • 【MATLAB源码-第290期】基于matlab的MRC检测算法在OTFS通信系统中的仿真,输出误码率曲
    操作环境:MATLAB2022a1、算法描述在无线通信系统的发展历程中,随着频谱的日益紧张以及高频通信需求的增加,传统的通信方法逐渐显露出其在复杂信道环境中的局限性。尤其是在高速移动、多径传播和多普勒效应严重的环境下,传统的OFDM(正交频分复用)等技术往往难以应对这些挑战。因此......
  • wifi模块使用主控输出的32k时钟
    soc:rk3568WiFi模块需要的32.768K时钟,有三种时钟源,rk809和8563提供,或者使用主控输出的。 dts修改如下:&wireless_bluetooth{compatible="bluetooth-platdata";-clocks=<&rk8091>;+clocks=<&cruSCLK_32K_IOE>;clock-n......
  • 超强抗干扰单键触摸/电容式触控IC-VK3601 SOT23-6单通道直接输出/触摸感应方案原厂
    产品品牌:永嘉微电/VINKA产品型号:VK3601封装形式:SOT23-6概述VK3601具有1个触摸按键,可用来检测外部触摸按键上人手的触摸动作。该芯片具有较高的集成度,仅需极少的外部组件便可实现触摸按键的检测。提供了1路直接输出功能。芯片内部采用特殊的集成电路,具有高电源电压抑制比,可......
  • 各个语言的标准输入输出(C++,Python,Go,MATLAB)
    标准输入和输出C/C++cin,cout,getline()进行输入输出#include<bits/stdc++.h>usingnamespacestd;intmain(){//输入`1231231` inta,b,c; cin>>a>>b>>c; cout<<a<<b<<c<<endl;//输出1231231并换行(endl代表换行) //输入`......
  • STM32CubeMX:使用DAC输出正弦波的三种方法(while,定时器中断,DMA)
    1.DAC概念简介:DAC的工作原理是根据数字输入信号的数值,生成相应的模拟输出电压或电流。它通常接收一个二进制数字输入,该数字代表了一个特定的数值范围。DAC通过将这个数字值转换为模拟信号的电压或电流水平来输出。(功能与ADC相反)2.正弦波输出方式1:简单粗暴while循环输出Cub......