BJFU 1015
描述
数字具有神奇的魔力,神奇到ben想把所有数字全部保存起来。于是他设想了如下的保存方法。假设有一张无限大的纸板,将所有自然数(不包括0)按如下顺序排列书写在纸板上保存:
1 2 6 7 15 16 ...
3 5 8 14 17 ...
4 9 13 ...
10 12 ...
11 ...
...
在这样的排列下,3排列在第2行第1列,13排在第3行第3列。现在ben想知道,对任意自然数,它排列在第几行第几列?
输入
输入包含多组测试数据,每组测试数据占一行,为一个自然数N(64位整数范围内。)
输出
对每组输入的自然数,请输出(i,j),表示该自然数排列在第i行第j列。
样例输入
3
13
1993
9223372036854775807
样例输出
(2,1)
(3,3)
(24,40)
(2147483647,2147483650)
看到这一题我一开始的思路是这样的↓
#include <stdio.h>
int main()
{
long long n,m,j;
while(scanf("%lld",&n)!=EOF)
{
,j=;m<n;m+=++j);
)printf(+m-n,j-(m-n));
+(m-n));
}
;
}
果然超时
还是考虑如何使得m的取值更合适比较好
#include <stdio.h>
int main()
{
long long n,m;
while(scanf("%lld",&n)!=EOF)
{
;(m*(m+))/>=n;m--);
m+=;
)printf(+(m*(m+))/-n,m-((m*(m+))/-n));
))/-n),+(m*(m+))/-n);
}
;
}
↑这样想的时候也没抱着AC的打算
倒推之后用sqrt减少运算↓
#include <stdio.h>
#include <math.h>
int main()
{
unsigned long long n,m,x;
while(scanf("%llu",&n)!=EOF)
{
)*sqrt(n);(m*(m+)/)<n;m++);
x = +(m*(m+))/-n;
)printf();
,x);
}
;
}
还是超时不过只有在9200000000000000000以上的某个值就会开始超时
然后发现在m*(m+1)的时候可能会溢出,所以改成了这样↓
#include <stdio.h>
#include <math.h>
int main()
{
unsigned long long n,m,x;
while(scanf("%llu",&n)!=EOF)
{
)*sqrt(n);((m/)/2.0))<n/2.0;m++);
x = +(((m/;
)printf();
,x);
}
;
}
但这样输出的时候许多大数的输出的是一样的坐标,估计是因为中间用到了浮点数运算所以导致的结果。
改成下面这样↓
#include <stdio.h>
#include <math.h>
int main()
{
unsigned long long n,m,x;
while(scanf("%llu",&n)!=EOF)
{
)*sqrt(n);((m/)/2.0))<n/2.0;m++);
x = n-(m*(m-)/);
)printf(,x);
);
}
;
}
AC~
BJFU 1015的更多相关文章
- 1015: [JSOI2008]星球大战starwar
1015: [JSOI2008]星球大战starwar Time Limit: 3 Sec Memory Limit: 162 MB Description 很久以前,在一个遥远的星系,一个黑暗的帝国 ...
- soj 1015 Jill's Tour Paths 解题报告
题目描述: 1015. Jill's Tour Paths Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description Every ...
- POJ 1015 Jury Compromise 2个月后重做,其实这是背包题目
http://poj.org/problem?id=1015 题目大意:在遥远的国家佛罗布尼亚,嫌犯是否有罪,须由陪审团决定.陪审团是由法官从公众中挑选的.先随机挑选n个人作为陪审团的候选人,然后再从 ...
- BZOJ 1015 题解
1015: [JSOI2008]星球大战starwar Description 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系.某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝 ...
- 【ZOJ】1015 Fishing Net
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1015 题意:给出一个n个点的无向图,询问是否为弦图,弦图定义为对于图中任意 ...
- [1015][JSOI2008]星球大战starwar(并查集)
1015: [JSOI2008]星球大战starwar Time Limit: 3 Sec Memory Limit: 162 MBSubmit: 2124 Solved: 909[Submit] ...
- 【BZOJ】1015: [JSOI2008]星球大战starwar(并查集)
http://www.lydsy.com/JudgeOnline/problem.php?id=1015 看了题解的囧T_T,一开始以为是求割点,但是想到割点不能统计.... 这题用并查集,思想很巧妙 ...
- PAT乙级 1015. 德才论 (25)
1015. 德才论 (25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Li 宋代史学家司马光在<资治通鉴&g ...
- fzu 1015 土地划分(判断线段相交+求出交点+找规律)
链接:http://acm.fzu.edu.cn/problem.php?pid=1015 Problem 1015 土地划分 Accept: 714 Submit: 1675Time Lim ...
随机推荐
- 20145330第七周《Java学习笔记》
20145330第七周<Java学习笔记> 第十三章 时间与日期 认识时间与日期 时间的度量 GMT(格林威治标准时间):现在不是标准时间 世界时(UT):1972年UTC出来之前,UT等 ...
- JDBC学习笔记1
JDBC(java database connectivity)一.基于socket+数据库底层协议java sun ------标准(接口)java.sql.*;jdbc sun公司为了方便连接数据 ...
- maven创建web工程,并导入到eclipse中
maven版本:3.1.0,eclipse版本:4.3 JDK:1.7 创建工程名是sa的maven工程 mvn archetype:create -DgroupId=com.bing-Dartifa ...
- [LintCode] Valid Number 验证数字
Validate if a given string is numeric. Have you met this question in a real interview? Yes Example & ...
- 关于网上常见的几种MD5加密的区别
(1) using System.Security.Cryptography; byte[] result = Encoding.Default.GetBytes(yps); //tbPass为输入密 ...
- Thinkphp中自己组合的数据怎样使用框架的分页
做项目有时候,需要自己处理组合数据,不是直接从表中提取出来的.不能按照手册得方法分页显示数据.这时候就得想办法,正好看到他人的方法.地址为:http://www.thinkphp.cn/code/27 ...
- get_magic_quotes_gpc()
php get_magic_quotes_gpc()函数:http://www.cnblogs.com/lsk/archive/2008/05/05/1184117.html 以及addslashes ...
- DataTable的一些用法
手动给DataTable添加数据 DataTable tab = new DataTable(); tab.Columns.Add("id", typeof(int));//添加列 ...
- php全面获取url地址栏及各种参数
<?php echo $_SERVER['HTTP_HOST']."<br>";//获取域名或主机地址 echo $_SERVER["SERVER_PO ...
- 关于格式转换 “%a.bs”
这个形式的格式转换符用于输出, 如果a <= b, 那么输出的字符串串长大于等于a, 小于b; 否则, 输出的串长按照a指定的输出. (不够,用空格补齐)