描述

数字具有神奇的魔力,神奇到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的更多相关文章

  1. 1015: [JSOI2008]星球大战starwar

    1015: [JSOI2008]星球大战starwar Time Limit: 3 Sec Memory Limit: 162 MB Description 很久以前,在一个遥远的星系,一个黑暗的帝国 ...

  2. soj 1015 Jill's Tour Paths 解题报告

    题目描述: 1015. Jill's Tour Paths Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description Every ...

  3. POJ 1015 Jury Compromise 2个月后重做,其实这是背包题目

    http://poj.org/problem?id=1015 题目大意:在遥远的国家佛罗布尼亚,嫌犯是否有罪,须由陪审团决定.陪审团是由法官从公众中挑选的.先随机挑选n个人作为陪审团的候选人,然后再从 ...

  4. BZOJ 1015 题解

    1015: [JSOI2008]星球大战starwar Description 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系.某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝 ...

  5. 【ZOJ】1015 Fishing Net

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1015 题意:给出一个n个点的无向图,询问是否为弦图,弦图定义为对于图中任意 ...

  6. [1015][JSOI2008]星球大战starwar(并查集)

    1015: [JSOI2008]星球大战starwar Time Limit: 3 Sec  Memory Limit: 162 MBSubmit: 2124  Solved: 909[Submit] ...

  7. 【BZOJ】1015: [JSOI2008]星球大战starwar(并查集)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1015 看了题解的囧T_T,一开始以为是求割点,但是想到割点不能统计.... 这题用并查集,思想很巧妙 ...

  8. PAT乙级 1015. 德才论 (25)

    1015. 德才论 (25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Li 宋代史学家司马光在<资治通鉴&g ...

  9. fzu 1015 土地划分(判断线段相交+求出交点+找规律)

    链接:http://acm.fzu.edu.cn/problem.php?pid=1015  Problem 1015 土地划分 Accept: 714    Submit: 1675Time Lim ...

随机推荐

  1. “Invalid maximum heap size” when running Maven

    运行mvn package,报错: Invalid maximum heap size: -Xmx512m. Error: Could not create the Java Virtual Mach ...

  2. linux下的crontab服务

    linux下的crontab服务:1.crontab 是用来让使用者在固定时间或固定间隔执行程序之用在linux平台上如果需要实现任务调度功能可以编写cron脚本来实现.以某一频率执行任务linux缺 ...

  3. servlet session 相关

    1.session是server维护的一个变量,如果消除每个session?----这里只做指定key的session删除 1.1.显示调用 废除指定key的session session.remov ...

  4. mysql错误代码整理

    1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除 ...

  5. thinkphp上传至服务器后模板无法解析原因

    前几日做好的响应式静态页面上传至虚拟空间,打开网址地址出现: 模板不存在:./app/Home/View/Index/index.html 错误位置 FILE: /home/u333385714/pu ...

  6. thinkphp多模板布局设置!!

    首先开启模板布局要在配置文件添加: 'LAYOUT_ON'=>true, 'LAYOUT_NAME'=>'layout', 如果需要设置多个布局模板,就要先关闭上面的LAYOUT_ON,也 ...

  7. 在PHP与HTML混合输入的页面或者模板中就需要对PHP代码进行闭合

    PHP程序的时候会在文件的最后加上一个闭合标签,如下: <?phpclass MyClass{public function test(){//do something, etc.}}?> ...

  8. IOS第七天(6:UiTableView编辑模式, 拖动位置 ,滑动删除)

    **********UiTableView编辑模式, 拖动位置 ,滑动删除 #import "HMViewController.h" @interface HMViewContro ...

  9. [转]快速构建App界面的框架(●'◡'●) -----SalutJs

    前言 卤煮在公司之初接触到的是一个微信APP应用.前端技术采用的是Backbone+zepto等小型JS类库.在项目开发之初,这类中小型的项目采用这两种库可以满足基本的需求.然而,随着迭代的更新和业务 ...

  10. linux下缓存的查看/修改

    起因: 安装openstack过程中内存不够大,提高内存后想起缓存一般设置为内存的两倍. 缓存的实质是硬盘开辟一个空间,然后设置这个空间为缓存. 查看缓存大小 free -m free -m tota ...