0x03 递归
这个东西好像在搞矩乘的时候用过?忘了

#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long LL;
const int mod=; int len;LL zy[],cs[];
void get_zy(LL n)
{
len=;
for(LL i=;i*i<=n;i++)
{
if(n%i==)
{
len++;
zy[len]=i;cs[len]=;
while(n%i==)n/=i,cs[len]++;
}
}
if(n>) len++, zy[len]=n, cs[len]=;
} //--------------------------------- LL quick_power(LL n,int p)
{
LL A=n%mod,ret=;
while(p>)
{
if(p%==)ret=(ret*A)%mod;
A=(A*A)%mod;p/=;
}
return ret;
}
LL fenzi(LL n,int p)
{
if(p==)return ;
if(p%==)
{
return (( fenzi(n,p/-)*(+quick_power(n,p/)) )%mod+quick_power(n,p))%mod;
}
else
{
return ( fenzi(n,p/)*(+quick_power(n,p/+)) )%mod;
}
}
int main()
{
LL n;int p;
while(scanf("%lld%d",&n,&p)!=EOF)
{
get_zy(n); LL ans=;
for(int i=;i<=len;i++)
{
ans=(ans*fenzi(zy[i],cs[i]*p))%mod;
}
printf("%lld\n",ans);
}
return ;
}
poj1845
3889那题太无聊了,题意还贼难理解,YY了下做法,就是很裸分治找在那个位置,维护横纵区间
手工栈太麻烦了,看这题吧bzoj2819Nim 但是好像机友们只传1个参数的搜索也可以
总的来讲没什么意思。
upd:
填坑:poj3889一道分形题,这种通过搜索变量交换进行翻转的题挺好的。反正自己肯定看得懂就不详写了
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long LL; LL Bin[];
void dfs(LL n,LL k,LL &x,LL &y)
{
if(n==)
{
if(k==)x=,y=;
else if(k==)x=,y=;
else if(k==)x=,y=;
else x=,y=;
return ;
} LL d=Bin[n-]*Bin[n-];
if(k<=d)//左上
{
dfs(n-,k,y,x);
}
else if(k<=*d)//右上
{
dfs(n-,k-d,x,y);
y+=Bin[n-];
}
else if(k<=*d)//右下
{
dfs(n-,k-*d,x,y);
x+=Bin[n-];y+=Bin[n-];
}
else//左下
{
dfs(n-,k-*d,y,x);
x=Bin[n]+-x;y=Bin[n-]+-y;
}
} int main()
{
Bin[]=;for(int i=;i<=;i++)Bin[i]=Bin[i-]*2LL;
int T;
scanf("%d",&T);
while(T--)
{
LL n,st,ed;
scanf("%lld%lld%lld",&n,&st,&ed);
LL stx,sty,edx,edy;
dfs(n,st,stx,sty),dfs(n,ed,edx,edy);
printf("%.0lf\n",sqrt(double((stx-edx)*(stx-edx)+(sty-edy)*(sty-edy)))*);
}
return ;
}
poj3889
0x03 递归的更多相关文章
- C# TreeGridView 实现进程列表
效果如图 0x01 获取进程列表,使用Win32Api规避"拒绝访问"异常 public List<AppProcess> GetAppProcesses() { In ...
- Java数据结构和算法 - 递归
三角数字 Q: 什么是三角数字? A: 据说一群在毕达哥拉斯领导下工作的古希腊的数学家,发现了在数学序列1,3,6,10,15,21,……中有一种奇特的联系.这个数列中的第N项是由第N-1项加N得到的 ...
- 5-6 c语言之【枚举,联合体,递归】
今天学习了枚举,联合体,递归,重点在于递归,所以从网上找到了一些递归的题目进行练习,毕竟程序员界流传一句话,会用循环的是人,会用递归的是神,哈哈哈 还是按次序进行梳理,第一个枚举,枚举和宏定义很相似, ...
- .NET 基础 一步步 一幕幕[面向对象之方法、方法的重载、方法的重写、方法的递归]
方法.方法的重载.方法的重写.方法的递归 方法: 将一堆代码进行重用的一种机制. 语法: [访问修饰符] 返回类型 <方法名>(参数列表){ 方法主体: } 返回值类型:如果不需要写返回值 ...
- 算法笔记_013:汉诺塔问题(Java递归法和非递归法)
目录 1 问题描述 2 解决方案 2.1 递归法 2.2 非递归法 1 问题描述 Simulate the movement of the Towers of Hanoi Puzzle; Bonus ...
- Android 算法 关于递归和二分法的小算法
// 1. 实现一个函数,在一个有序整型数组中二分查找出指定的值,找到则返回该值的位置,找不到返回 -1. package demo; public class Mytest { public st ...
- 二叉树的递归实现(java)
这里演示的二叉树为3层. 递归实现,先构造出一个root节点,先判断左子节点是否为空,为空则构造左子节点,否则进入下一步判断右子节点是否为空,为空则构造右子节点. 利用层数控制迭代次数. 依次递归第二 ...
- 递归实现n(经典的8皇后问题)皇后的问题
问题描述:八皇后问题是一个以国际象棋为背景的问题:如何能够在8×8的国际象棋棋盘上放置八个皇后, 使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行.纵行或斜线上 ...
- C语言用分别用递归和循环求数字的阶乘的方法
以下代码均为 自己 实现,嘻嘻! 参考文章:http://blog.csdn.net/talk_8/article/details/46289683 循环法 int CalFactorial(int ...
随机推荐
- 29. Divide Two Integers[M]两数相除
题目 Given two integers dividend and divisor, divide two integers without using multiplication, divisi ...
- 大数据学习之路------借助HDP SANDBOX开始学习
一开始... 一开始知道大数据这个概念的时候,只是感觉很高大上,引起了我的兴趣.当时也不知道,这个东西是做什么的,有什么用,当然现在看来也是很模糊的样子,但是的确比一开始强了不少. 所以学习的过程可能 ...
- ORACLE.错误码 ORA-12154 及Oracle客户端免安装版的设置
.错误码 ORA-12154相信作为ORACLE数据库的开发人员没有少碰到“ORA-12154: TNS: 无法解析指定的连接标识符”,今天我也又碰到了类似的情况,将我的解决方法进行小结,希望能对碰到 ...
- Python 之 风格规范(Google )
开头先mark一下网址:goole官网 任何语言的程序员,编写出符合规范的代码,是开始程序生涯的第一步. 一.分号 不要在行尾加分号, 也不要用分号将两条命令放在同一行. 二.行长度 每行不超过80个 ...
- vue 返回上一页在原来的位置
http://www.jb51.net/article/118592.htm http://blog.csdn.net/qq_26598303/article/details/51189235 htt ...
- c++常用功能封装
C++文件读写的封装 在C++开发中,文件读写是很常用的功能,出于代码复用的考虑,将它们进行封装. 其中,默认读写的文件是文本文件,并且需要按行处理.调用者只需要关注读取出来的每一行的处理方式.写文件 ...
- RxSwift文档搜集与备份
http://reactivex.io The Observer pattern done right ReactiveX is a combination of the best ideas fro ...
- <td colspan="6"></td>代表这个td占6个td的位置
<td colspan="6"><span class="order-time">2017-10-11 14:55:23</spa ...
- type="radio"样式修改
input[type=radio],input[type=checkbox] { display: inline-block; vertical-align: middle; width: 20px; ...
- 洛谷P1441 砝码称重 枚举 + 01背包
显然,n<=20, m<=4 的数据范围一眼爆搜. 直接搜索一下不用哪4个砝码,再做一遍01背包即可. 可能是本人太菜鸡,01背包部分调了半天QAQ-- #include<cstdi ...