noip2005循环
题解:
迭代,一次次k累加计算
代码:
#include<bits/stdc++.h>
using namespace std;
const int N=;
int n,a[N],b[N],c[][N],ans[N];
char s[N];
bool same(int p[],int q[],int x)
{
for(int i=;i<=x;i++)
if(p[i]!=q[i])return ;
return ;
}
void multi_1(int x)
{
int last=;
for(int i=;i<=ans[];i++)
{
ans[i]=ans[i]*x+last;
last=ans[i]/;ans[i]%=;
}
if(last>)ans[++ans[]]=last;
}
void multi_2(int w[],int p[],int q[])
{
int i,last=;
w[]=min(p[]+q[]-,n);
for(int k=;k<=w[];k++)
{
for(w[k]=last,i=;i<=p[];i++)
if(k+-i>=&&k+-i<=q[])w[k]+=p[i]*q[k+-i];
last=w[k]/,w[k]%=;
}
if(last)w[++w[]]=last;
}
int get(int x)
{
memcpy(c[],b,sizeof(b));
for(int i=;i<=;i++)
{
multi_2(c[i&],c[i&^],b);
if(same(c[i&],b,x))
{
multi_2(c[i&],c[i&^],a);
if(!same(c[i&],a,x))goto d1;
memcpy(b,c[i&^],sizeof(c[]));
return i;
}
}
d1:puts("");
exit();
}
int main()
{
scanf("%s%d",s,&n);
a[]=strlen(s),n=min(a[],n);
for(int i=;i<=n;i++)a[i]=s[a[]-i]-'';
memcpy(b,a,sizeof(a));
ans[]=;ans[]=;
for(int i=;i<=n;i++)multi_1(get(i));
ans[]++;
int j=;
while (ans[j]==)
{
ans[j+]++;
ans[j]=;
j++;
}
if (ans[ans[]+])ans[]++;
for(int i=ans[];i;i--)printf("%d",ans[i]);
}
noip2005循环的更多相关文章
- NOIP2005普及组第4题 循环
NOIP2005普及组第4题 循环 时间限制: 1 Sec 内存限制: 128 MB提交: 27 解决: 6[提交][状态][讨论版][命题人:外部导入] 题目描述 乐乐是一个聪明而又勤奋好学的孩 ...
- [NOIP2005] 普及组 循环
陶陶摘苹果 校门外的树 采药 以上三道都不是重点 循环 题目描述 乐乐是一个聪明而又勤奋好学的孩子.他总喜欢探求事物的规律.一天,他突然对数的正整数次幂产生了兴趣. 众所周知,2的正整数次幂最后一位数 ...
- 【.net 深呼吸】细说CodeDom(8):分支与循环
有人会问,为啥 CodeDom 不会生成 switch 语句,为啥没生成 while 语句之类.要注意,CodeDom只关心代码逻辑,而不是语法,语法是给写代码的人用的.如果用.net的“反编译”工具 ...
- Recurrent Neural Network系列1--RNN(循环神经网络)概述
作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...
- Python学习--04条件控制与循环结构
Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...
- 模仿Linux内核kfifo实现的循环缓存
想实现个循环缓冲区(Circular Buffer),搜了些资料多数是基于循环队列的实现方式.使用一个变量存放缓冲区中的数据长度或者空出来一个空间来判断缓冲区是否满了.偶然间看到分析Linux内核的循 ...
- 【JS基础】循环
for 循环的语法: for (语句 1; 语句 2; 语句 3) { 被执行的代码块 } 语句 1 在循环(代码块)开始前执行 语句 2 定义运行循环(代码块)的条件 语句 3 在循环(代码块)已被 ...
- 【python之路4】循环语句之while
1.while 循环语句 #!/usr/bin/env python # -*- coding:utf-8 -*- import time bol = True while bol: print '1 ...
- To Java程序员:切勿用普通for循环遍历LinkedList
ArrayList与LinkedList的普通for循环遍历 对于大部分Java程序员朋友们来说,可能平时使用得最多的List就是ArrayList,对于ArrayList的遍历,一般用如下写法: p ...
随机推荐
- 嵌入式C语言--面试题
C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法.这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为带面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是 ...
- sublimeText3最新教程-自带插件汉化(sublime-text_build-3175_amd64)
一.可用注册码 1.更改dns 在linux下的目录是 /etc/hosts 在win7中,hosts文件的位置:C:\Windows\System32\drivers\etc 127.0.0 ...
- Qt Designer中文入门教程
Qt Designer窗口布局Layouts提供了四种布局方法,他们是: Vertical Layout 纵向布局Horizontal Layout 横向布局Grid Layout 栅格布局Form ...
- Java propertis文件中组装配置
目的: 实现在配置文件中,进行组装 1.Properties文件配置如下: dns=http://211.103.227.133:8080 qrcode=${dns}/wx/views/invite/ ...
- 【jdk源码分析】jdk8的ArrayList初始化长度为0
先看结果 用的是反射获取elementData底层数组的长度 查看源码 无参构造函数没有了this.size = 10; 图1 图2 图3 图4 java的基本数据类型默认值 所以无参构造时长度为0 ...
- js中一些关于比较左右两边的值的题目
alert(typeof(NaN)); alert(typeof(Infinity)); alert(typeof(null)); alert(typeof(undefined)); alert(Na ...
- Linux下通过命令行mail发送e-mail
找到配置文件/etc/mail.rc添加如下行 # vi /etc/mail.rc set from=@qq.com set smtp=smtp.qq.com set smtp-auth-user= ...
- 【转载】非Lumia 950/XL机型 强行开启continuum教程
听说Windows 10 Mobile 的 Continuum 特性很长时间了,但是由于我自己的 Lumia 930 不在支持之列,一直没能体验到这个功能.今天在酷七看到了这篇文章,按文章所述的步骤进 ...
- WPF基础学习笔记整理 (一)
基础知识: WPF:Windows Presentation Foundation,用于Windows的现代图形显示系统: WPF用于编写应用程序的表示层: 引入“内置硬件加速”和“分辨率无关”: S ...
- 《剑指offer》第五题(替换空格)
// 替换空格 // 题目:请实现一个函数,把字符串中的每个空格替换成"%20".例如输入“We are happy.”, // 则输出“We%20are%20happy.”. # ...