acm之poj题库1019方法
认识了几个师弟,一直总想把自己的经验表达出来一些,让后面的人在更年轻的时候,认识到方向、努力。
昨天忽然想起自己在大学时候做了几天的acm,终于也没能坚持。然后就感觉带师弟们做下acm题目还是很不错。
poj还是熟悉的界面,不过大学时候注册的账号也忘记了。想起来也没有几道题目被ack~于是重新注册了个账号。
当然一下就是1019题目,还以为这道题目挺水的,结果前前后后花了一上午的时间才被ack。
-----------------关于1019题目的题意---------------------
存在一个序列,序列是这样的S1S2...Sk,每个Sk又是从1到k数字的序列。
例如该序列的前80位如下所示
11212312341234512345612345671234567812345678912345678910123456789101112345678910
要求:输入一个数字的位置,然后输出在该位置的数字。
比如 :
3 将输出2
8 将输出2
80 将输出0(根据题干中序列前80位可得)
81 将输出1(根据题干中得知序列接下来的数字是11,因此第81位输出的数字位1)
-----------------解答思路-----------------------------------------
观察序列,可知整体序列S1S2...Sk由k的子序列,同时第K个子序列是K-1个子序列加上最大的一个数字组成。
因此我的思路可以分为三个步骤:
1。确定输入位置所在的子序列
2。确定子序列中的数字(该数字可能为十位或者百位)
3。确定数字中的具体字符
-----------------具体参考代码-----------------------------------
#include <stdio.h>
#include <math.h>
int number, tmp;
int big, big_length, sub_str_length;
int sub_big, pos, result;
int array[10];
int ind;
int main()
{
int count;
scanf("%d", &count);
while(count--)
{
scanf("%i", &number);
//确定子序列
big = 1;
sub_str_length = 1;
while(1)
{
if(sub_str_length < number)
{
number -= sub_str_length;
big ++;
//子序列最大数字长度
tmp = big;
big_length = 0;
while(tmp)
{
big_length++;
tmp = tmp/10;
}
sub_str_length += big_length;
}else
{
break;
}
}
//所在子序列中的具体数字,及数字的位置
pos = 0;
sub_big = 0;
while( pos < number)
{
sub_big++;
tmp = sub_big;
result = 0;
while(tmp)
{
result ++;
pos ++;
if( pos == number)
goto print;
tmp = tmp /10;
}
}
//根据所在数字及在当前数字中的位置打印具体字符
print:
while(sub_big)
{
array[ind++] = sub_big % 10;
sub_big /= 10;
}
printf("%d\n", array[ind-result]);
}
return 0;
}
acm之poj题库1019方法的更多相关文章
- acm之poj题库1001方法
题目所言是银行等不能用四舍五入等影响精度的方法来计算的情况,是为提出背景.因此需要特殊的编写.这里使用了好几种方法才找到一个合适的方法.因为C++或者C缺乏类库,又跟底层关联太大,缺乏常用的类库,在写 ...
- 北大POJ题库使用指南
原文地址:北大POJ题库使用指南 北大ACM题分类主流算法: 1.搜索 //回溯 2.DP(动态规划)//记忆化搜索 3.贪心 4.图论 //最短路径.最小生成树.网络流 5.数论 //组合数学(排列 ...
- Java题库——Chapter5 方法
1)Suppose your method does not return any value, which of the following keywords can be used as a re ...
- ACM在线题库
现在网上有许多题库,大多是可以在线评测,所以叫做Online Judge.除了USACO是为IOI准备外,其余几乎全部是大学的ACM竞赛题库. USACO http://ace.delos.com/u ...
- 数据排序 第二讲( 各种排序方法 结合noi题库1.10)
先来个题练练手吧! 例题 04:奖学金 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生 ...
- OnlineJudge 离线题库采集
过段时间要把以前的OJ换掉,我负责VirtualJudge的部分.需要用C与PHP写一个Linux下的VJudge. 在此之前,将以前写给自己学弟学妹用的OJ离线题库的采集程序改进了一下.支持国内一些 ...
- 「浙江理工大学ACM入队200题系列」问题 A: 零基础学C/C++34—— 3个数比较大小(冒泡排序与选择排序算法)
本题是浙江理工大学ACM入队200题第四套中的A题,同时给出了冒泡排序和选择排序算法 我们先来看一下这题的题面. 由于是比较靠前的题目,这里插一句.各位新ACMer朋友们,请一定要养成仔细耐心看题的习 ...
- 猿题库 iOS 客户端架构设计
原文: http://mp.weixin.qq.com/s?__biz=MjM5NTIyNTUyMQ==&mid=444322139&idx=1&sn=c7bef4d439f4 ...
- NOI题库 1768最大子矩阵 题解
NOI题库 1768最大子矩阵 题解 总时间限制: 1000ms 内存限制: 65536kB 描述 已知矩阵的大小定义为矩阵中所有元素的和.给定一个矩阵,你的任务是找到最大的非空(大 ...
随机推荐
- final修饰的变量是引用不能改变,还是引用的对象不能改变???
对于这个问题,我们不能只记结论,要拿实例说话,参看以下代码: public class Demo { public static void main(String[] args) { final St ...
- Android锁屏或灭屏状态下,快速按两次音量下键实现抓拍功能(1.2Framework层使用startService形式实现)
如前一篇博文所分析,我们可以使用广播的形式在快速按下两次音量下键的时候发出广播,以方便客户端进行捕捉.既然有两种方式可以实现该Issue那么哪种方式是首选呢? 我个人推荐使用启动服务的 ...
- 黑马程序员——【Java高新技术】——类加载器
---------- android培训.java培训.期待与您交流! ---------- 一.概述 (一)类加载器(class loader) 用来动态加载Java类的工具,它本身也是Java类. ...
- software_testing_work2_question1(改)_edition
由于上个版本问题多多,而且测试情况略有呵呵,于是想想还是默默的改进了一个版本. input类 首先呢,是作为输入项的实体类input. 对比之前的版本,新版本(姑且称其为edition2)加强了ope ...
- Magento后台手动修改订单状态方法及手动修改方法php
订单详细内容页手动修改订单状态方法: 打开此文件:app\design\adminhtml\default\default\template\sales\order\view\history.phtm ...
- 禁用CMFCRibbonApplicationButton的单击和双击事件
为了禁用CMFCRibbonApplicationButton的单击和双击事件,我重载了CMFCRibbonApplicationButton如下: 1. MyRibbonApplicationBut ...
- 为sproto手写了一个python parser
这是sproto系列文章的第三篇,可以参考前面的<为sproto添加python绑定>.<为python-sproto添加map支持>. sproto是云风设计的序列化协议,用 ...
- JSP基础——属性保存范围和request对象
JSP属性保存范围 JSP中提供了四种属性保存范围,分别为page,request,session及application. 1.page范围,指设置的属性只在当前页面有效.通过pageContext ...
- 配置自己的OpenGL库,glew、freeglut库编译,库冲突解决(附OpenGL Demo程序)
平台:Windows7,Visual C++ 2010 1. 引言 实验室的一个项目,用到OpenGL进行实时绘制,还用到一些其他的库,一个困扰我很久的问题就是编译时遇到的各种符号未定义,符号重定义之 ...
- jenkins 中 Poll SCM 和 Build periodically 的区别
Build periodically 定时触发构建任务,不管远程代码分支上的代码是否发生变化,都执行一次构建. 示例:H 2 * * * 每天两点定时执行构建. Poll SCM:定时感知代码分支是否 ...