NYOJ 棋盘覆盖
数字很大,要用大数乘法。
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<queue>
#include<algorithm>
using namespace std;
char s1[];
char s2[];
char* bignum(char *num1, char *num2)
{
if(strcmp(num1,"")==)
return "";
int length1 = strlen(num1);
int length2 = strlen(num2);
int i, l;
char *res = (char *)malloc(sizeof(char)*(length1 + length2)); //开辟相应内存
memset(res, , sizeof(char)*(length1 + length2));
for (i = length1 - ; i >= ; i--)
for (l = length2 - ; l >= ; l--)
{
res[i + l + ] += (num1[i] - '')*(num2[l] - '');
res[i + l] += res[i + l + ] / ; //马上进行进位
res[i + l + ] %= ;
}
int count = ;
while (res[count] == ) //由于保存的结果是从右向左的,所以要消除左部分的0;
{
count++;
}
char* ret = (char *)malloc(sizeof(char)*(length1 + length2 + ));
memset(ret, , sizeof(char)*(length1 + length2 + ));
for (l = , i = count; i < length1 + length2; l++, i++) //非0部分赋给ret
{
ret[l] = res[i] + '';
}
//printf("Ret=%s\n", ret);
return ret;
free(res);
free(ret);
} int main()
{
int t;
cin>>t;
while(t--)
{
int k;
cin>>k;
strcpy(s1,"");
strcpy(s2,"");
//printf("%s\n",s1);
while(k--)
{
//printf("%s\n",s1);
strcpy(s1,bignum(s1,s2));
for(int i=strlen(s1)-;i>=;i--)
{
if(s1[i] == '')
{
s1[i] = ;
continue;
}
else
{
s1[i] = s1[i] + ;
break;
}
}
}
printf("%s\n",s1);
}
return ;
}
NYOJ 棋盘覆盖的更多相关文章
- NYOJ 45 棋盘覆盖 模拟+高精度
题意就不说了,中文题... 小白上讲了棋盘覆盖,于是我就挖了这题来做. 棋盘覆盖的推导不是很难理解,就是分治的思想,具体可以去谷歌下. 公式就是f(k) = f(k - 1) * 4 + 1,再化解下 ...
- NYOJ 45 棋盘覆盖
棋盘覆盖 水题,题不难,找公式难 import java.math.BigInteger; import java.util.Scanner; public class Main { public s ...
- bzoj 2706: [SDOI2012]棋盘覆盖 Dancing Link
2706: [SDOI2012]棋盘覆盖 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 255 Solved: 77[Submit][Status] ...
- 棋盘覆盖(大数阶乘,大数相除 + java)
棋盘覆盖 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 在一个2k×2k(1<=k<=100)的棋盘中恰有一方格被覆盖,如图1(k=2时),现用一缺角的 ...
- 棋盘覆盖(一) ACM
棋盘覆盖 描述 在一个2k×2k(1<=k<=100)的棋盘中恰有一方格被覆盖,如图1(k=2时),现用一缺角的2×2方格(图2为其中缺右下角的一个),去覆盖2k×2k未被覆盖过的方格,求 ...
- 棋盘覆盖问题(算法分析)(Java版)
1.问题描述: 在一个2k×2k个方格组成的棋盘中,若有一个方格与其他方格不同,则称该方格为一特殊方格,且称该棋盘为一个特殊棋盘.显然特殊方格在棋盘上出现的位置有种情形.因而对任何 k≥0,有4k种不 ...
- CODEVS 2171 棋盘覆盖
2171 棋盘覆盖 给出一张nn(n<=100)的国际象棋棋盘,其中被删除了一些点,问可以使用多少12的多米诺骨牌进行掩盖. 错误日志: 直接在模板上调整 \(maxn\) 时没有在相应邻接表数 ...
- 递归与分治策略之棋盘覆盖Java实现
递归与分治策略之棋盘覆盖 一.问题描述 二.过程详解 1.棋盘如下图,其中有一特殊方格:16*16 . 2.第一个分割结果:8*8 3.第二次分割结果:4*4 4.第三次分割结果:2*2 5.第四次分 ...
- JavaScript编写棋盘覆盖
一.前言 之前做了一个算法作业,叫做棋盘覆盖,本来需要用c语言来编写的,但是因为我的c语言是半桶水(哈哈),所以索性就把网上的c语言写法改成JavaScript写法,并且把它的覆盖效果显示出来 二.关 ...
随机推荐
- ThinkingInJava 学习 之 0000005 访问权限控制
1. 包:库单元 1. 代码组织 2. 创建独一无二的包名 3. 定制工具库 4. 用import改变行为 5. 对使用包的忠告 2. Java访问权限修饰词 1. 包访问权限 2. public : ...
- iOS开发之--解决 swap file “*.swp”already exists!问题
刚才我在vim导入第三方库的时候,突然发现我把podfile的名字打错了,然后我直接终止了进程,然后你懂得出错了,,E325......., 其实使用vim编辑文件实际上是先copy一份临时文件,病映 ...
- 查看Oracle数据库SQL执行历史
-- 找出哪个数据库用户用什么程序在最近三天执行过delete或truncate table的操作 SELECT c.username, a.program, b.sql_text, b.comman ...
- .net运行时dll的查找路径顺序
D:\项目路径\.target\项目名.BLL.pdb”.已完成生成项目“D:\项目路径\项目名.BLL\项目名.BLL.csproj”(默认目标)的操作.ResolveAssemblyReferen ...
- python nose测试框架全面介绍十---用例的跳过
又来写nose了,这次主要介绍nose中的用例跳过应用,之前也有介绍,见python nose测试框架全面介绍四,但介绍的不详细.下面详细解析下 nose自带的SkipTest 先看看nose自带的S ...
- Linux下的tr编辑器命令详解
通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能.您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符.您也可以用它来除去重复 ...
- css---计算页面的的宽度和长度
我们在写前端页面的时候,会遇到这样的情况,就是一个div设置宽度100%,设置左右边距10像素,这样的布局,在里面嵌套的div的宽度设置100%,这样写的话,里面的宽度是和外面的宽度一致的,同样是10 ...
- [No000017B]改善C#程序的建议4:C#中标准Dispose模式的实现
需要明确一下C#程序(或者说.NET)中的资源.简单的说来,C#中的每一个类型都代表一种资源,而资源又分为两类: 托管资源:由CLR管理分配和释放的资源,即由CLR里new出来的对象: 非托管资源:不 ...
- [No0000112]ComputerInfo,C#获取计算机信息(cpu使用率,内存占用率,硬盘,网络信息)
github地址:https://github.com/charygao/SmsComputerMonitor 软件用于实时监控当前系统资源等情况,并调用接口,当资源被超额占用时,发送警报到个人手机: ...
- mysql表引擎myisam改为innodb
1.进入数据库 2.SELECT CONCAT('ALTER TABLE `', table_name, '` ENGINE=InnoDB;') AS sql_statements FROM ...