Stupid cat Doge (分形图)

【题目描述】

    

【题目链接】

    http://noi.openjudge.cn/ch0204/8463/

【算法】

    为求等级N下的点的坐标可由几何关系找到其与等级N-1下对应点的关系,然后递归直至所有点的祖先(等级0)即可计算出坐标。

【代码】

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 int t;
 5 ll n,s,d;
 6 pair<ll,ll> calc(int state,ll num)
 7 {
 8     if(!state) return make_pair(1,1);
 9     ll side=1<<(state-1),sum=side*side;
10     ll  rec=num/sum,pre_num=num%sum;
11     pair<ll,ll> pr=calc(state-1,pre_num);
12     switch(rec) {
13     case 0: swap(pr.first,pr.second); break;
14     case 1: pr.first+=side; break;
15     case 2: pr.first+=side,pr.second+=side; break;
16     case 3: swap(pr.first,pr.second),pr.first=side-pr.first+1,pr.second=side*2-pr.second+1;
17     }
18     return pr;
19 }
20 int main()
21 {
22     scanf("%d",&t);
23     while(t--) {
24         scanf("%d%lld%lld",&n,&s,&d);
25         pair<ll,ll> p1=calc(n,s-1);
26         pair<ll,ll> p2=calc(n,d-1);
27         ll dx=p1.first-p2.first,dy=p1.second-p2.second;
28         printf("%.0f\n",sqrt(dx*dx*1.0+dy*dy*1.0)*10);
29     }
30     return 0;
31 }

【《算法竞赛进阶指南》大佬代码,侵删】

 1 /*
 2   Author: Yufei Du
 3   本程序仅供参考
 4 */
 5 #include <cmath>
 6 #include <cstdio>
 7 #include <cstring>
 8 #include <cstdlib>
 9 #include <algorithm>
10 using namespace std;
11 
12 pair<__int64, __int64> recur (int stage, __int64 id)
13 {
14     if (stage == 0) return make_pair(0, 0);
15     __int64 max = 1 << (stage - 1), s = max * max;
16     __int64 z = id / s, idsp = id % s;
17     pair<__int64, __int64> psp = recur(stage - 1, idsp);
18     if (z == 0 || z == 3) swap(psp.first, psp.second);
19     if (z == 3)
20     {
21         psp.first = max - psp.first - 1;
22         psp.second = max - psp.second - 1;
23     }
24     if (z == 1 || z == 2) psp.first += max;
25     if (z == 3 || z == 2) psp.second += max;
26     return psp;
27 }
28 int main ()
29 {
30 
31     int kase; for (scanf("%d", &kase); kase; --kase)
32     {
33         int n; __int64 h, o;
34         scanf("%d %I64d %I64d", &n, &h, &o);
35         pair<__int64, __int64> hp = recur(n, h - 1);
36         pair<__int64, __int64> op = recur(n, o - 1);
37         __int64 dx = abs(hp.first - op.first), dy = abs(hp.second - op.second);
38         printf("%.0f\n", (double)sqrt(dx * dx + dy * dy) * 10);
39     }
40     return 0;
41 }

 

转载于:https://www.cnblogs.com/Willendless/p/9361879.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/465401.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电赛时,如何快速搭建电路?

大家好&#xff0c;我是张巧龙&#xff0c;电赛只有四天三夜&#xff0c;电路方案可能需要多次验证&#xff0c;有的同学选择直接洞洞板焊接&#xff0c;自行跳线。有些同学可能会选择雕刻机雕刻。我带的学生一般会使用传统工艺-腐蚀法&#xff0c;这种方法的优点&#xff0c;成…

船舶自动识别系统(AIS)

摘要&#xff1a;在对船载自动识别系统&#xff08;AIS&#xff09;的功能研究的基础之上&#xff0c;研究了对GPS&#xff0c;ECDIS&#xff0c;ARPA&#xff0c;VTS&#xff0c;VDR&#xff0c;CHISREP&#xff0c;航标&#xff0c;物流&#xff0c;船-岸信息网等航运及海事管…

mysql安装包脚本之家_CentOS 7 MySQL5.7 TAR包解压 全自动化脚本

准备工作tar安装包&#xff1a;默认已经下载好mysql 安装包&#xff0c;名称为&#xff1a; mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz &#xff0c;我的安装包位置&#xff1a;/root 。我服务器没有网络&#xff0c;只能通过sftp上传。安装位置&#xff1a;mysql程序安装路…

Javaweb经典三层架构的演变

1.Javaweb经历了三个时期 ①JSP Model1第一代 JSP Model1是JavaWeb早期的模型&#xff0c;它适合小型Web项目&#xff0c;开发成本低&#xff01;Model1第一代时期&#xff0c;服务器端只有JSP页面&#xff0c;所有的操作都在JSP页面中&#xff0c;连访问数据库的API也在JSP页面…

我决定去读研了

读书这个事情&#xff0c;我一直都是比较推荐大家去做的&#xff0c;今天有一位同学找到我&#xff0c;问我现在哪个行业比较赚钱&#xff0c;自己马上要毕业了&#xff0c;想马上大显身手一下。然后我问他&#xff0c;你有没有赚钱的压力&#xff0c;还有自己目前的学习成绩怎…

如何制定好的方案之四:执行力是决定因素

如何制定好的方案之三:实施策略是关键 执行力是决定因素。 前面从方案的目标、资源一直说到很关键的实施策略&#xff0c;这一切再完美最终的决定因素却是&#xff1a;执行力&#xff01;执行力在完整的方案中是要用明文规定来实现过程控制的目的的。这些明文的规定&#xff0…

win2008 php mysql zend phpmyadmin_Windows2008 最新版Apache2.PHP5.MySQL6.PHPMyadmin.ZendOptimizer安装图解...

首先到PHPCHINA的网站www.phpchina.com下载最新的正式版本Apache 2.2.8地址&#xff1a;http://apache.mirror.phpchina.com/httpd/httpd-2.2.8-win32-src.zipPHP-5.2.5地址&#xff1a;http://cn.php.net/get/php-5.2.5-Win32.zip/from/this/mirrorMySQL-6.0.3-alpha-win32地址…

WPF 开源项目 【watcher】 守望者,一款监控,统计,分析你每天在自己电脑上究竟干了什么的软件...

时隔多年&#xff08;两年&#xff09;&#xff0c;天天沉迷写PHP的我在连续加薪了逐渐发现自己不怎么写代码了。 甚至有一天我发现我连IDE 都没有打开&#xff0c;实在是太堕落了 为了及时悬崖勒马&#xff0c;回头是岸。为了鼓励自己专心写代码&#xff0c;我决定写一款监控自…

Java iText PDF:用 iText 包生成简单的 pdf 文件

有点兴趣想要看看 Java 怎么生成 PDF 文件&#xff0c;搜索了一下&#xff0c;据说 iText 包比较好&#xff0c;到 这里下载 iText.jar 包&#xff0c;顺便把源代码、文档都一起下载了吧。但是&#xff0c;仅仅有这么一些材料想要写代码生成 pdf 文件还是比较困难的&#xff0c…

java互换_两个变量交换的四种方法(Java)

对于两种变量的交换,我发现四种方法,下面我用Java来演示一下。 1.利用第三个变量交换数值,简单的方法。 (代码演示一下) 1 class TestEV 2 //创建一个类 3 {4 public static void main(String[]args) 5 {6 int x =5,y=10; //定义两个变量 7 8 int temp = x;    //定义第…

搞技术的,越老越吃香?越老越值钱?

在我的整个职业生涯中&#xff0c;我目睹了很多才华横溢的工程师经过一段不太愉快的短期任职后离开了公司。曾经我也有这样的经历&#xff1a;在一家公司任职不到两年&#xff0c;就跳槽到了另一家&#xff0c;担任工程副总裁。撇开我的例子不谈&#xff0c;我认为出现这种现象…

ubuntu 修改host,以便在本地调试

sudo gedit /etc/hosts这样已经可以即可生效了&#xff0c;另外再改一下nginx.confserver_name localhost www.15-1688.com;

java的两种方式_java 两种方式的区别?

成员函数方式package cn.com.ch09;class FatherTest{public void pet(String str){System.out.println(str);}}public class SonTest extends FatherTest {public void hitChild() {System.out.println("这是使用接口实现");}public static void main(String[] args)…

对存储还搞不清楚,先看看这篇文章-从51单片机上去理解存储器

存储器是许多存储单元的集合&#xff0c;存储器单元实际上是时序逻辑电路&#xff08;锁存器&#xff09;的一种&#xff0c;按单元号顺序排列。每个单元由若干二进制位构成&#xff0c;以表示存储单元中存放的数值&#xff0c;这种结构和数组的结构非常相似。按存储器的使用类…

梅湛演讲

1.Linux命令部署 2.单元测试 3.时间 注意力管理 4.快速学习 5.翻墙能力 英语能力 6.表达能力 技术 表达3:7 输入 输出 3:7 表达能力 7.李笑来 新的行业新的起点 终点思维 里程碑 高度思维 8.最后一次演讲 好好学习 转载于:https://www.cnblogs.com/xiaocongcong888/p/9383726.h…

继续泼冷水 Ubuntu决定放弃支持安腾

在今年早些时候微软宣布下一代windows server操作系统不再支持英特尔安腾架构&#xff0c;给本就前途堪忧的安腾泼了一盆冷水。如今Ubuntu&#xff08;重要的一款以桌面应用为主的Linux操作系统&#xff09;也决定不再支持英特尔安腾架构。而另一方面&#xff0c;安腾在硬件厂商…

给不起钱的大公司,算不上大公司

这是昨天给一位同学聊职业规划中说的一句话。这位同学在每次做选择前都会跟我聊下&#xff0c;感觉职业规划咨询跟卖菜差不多&#xff0c;那些觉得我的建议不错的同学&#xff0c;总是会在一年两年后继续找我&#xff0c;挺好的&#xff0c;喜欢跟大家一起沟通吹水并一起成长的…

java 对象 序列化 文件中_如何将一个java对象序列化到文件里

1.准备要序列化的类User(这个类必须实现Serializable接口&#xff0c;该接口只起到一个标记作用&#xff0c;没有任何抽象方法)package cn.qdm.ceshi;import java.io.Serializable;public class User implements Serializable{private String name;private Integer age;public …

[摸鱼]cdq分治 学习笔记

待我玩会游戏整理下思绪&#xff08;分明是想摸鱼 cdq分治是一种用于降维和处理对不同子区间有贡献的离线分治算法 对于常见的操作查询题目而言,时间总是有序的,而cdq分治则是耗费\(O(logq)\)的代价使动态操作化为静态查询问题(the world! 考虑无修改的求逆序对问题 每个元素可…

SEO 搜索引擎优化

http://www.caopeng.org/html/seo.htm