描述

数字具有神奇的魔力,神奇到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. 关于多条id相同,只取其中一条记录的sql语句

    需要使用:分区函数用法(partition by 字段) select *,row_number() over(partition by item order by date  ) as index ...

  2. ios修改产品名

    在创建项目的时候,会设置一个项目名,以后生成的APP名字也就是这个了,但由于某种原因,我想修改APP名字,也就是屏幕程序图标下面显示的那个,这该怎么办呢? 下面有三种方法都可以: 修改Product ...

  3. 3Sum Closest

    Given an array S of n integers, find three integers in S such that the sum is closest to a given num ...

  4. django数据库动态添加列

    方法一: python manage.py migrate 方法二: python manage.py migrate 效果: ---〉

  5. JSP + AJAX完整实例及代码

    (1)发送请求index.jsp,注意引入jquery.min.js文件 <%@ page language="java" contentType="text/ht ...

  6. .net 服务器端文件下载

    string path = Server.MapPath("/Source/mjpjb.rar"); System.IO.FileInfo file = new System.IO ...

  7. 允许浏览器跨域访问web服务端的解决方案

    今天和同事探讨了前后端如何真正实现隔离开发的问题,如果前端单独作为服务发布,势必会涉及到无法直接调用后端的接口的问题,因为浏览器是不允许跨域提交请求的. 所谓跨域访问,就是在浏览器窗口,和某个服务端通 ...

  8. 4_STL设计理念_算法

    STL算法,容器,迭代器的设计理念1.STL容器通过 类模板 技术,实现 数据类型 和 容器模型的分离:2.迭代器技术 实现了 遍历和操作容器的统一方法3.STL算法设计理念:通过预定义的函数对象和函 ...

  9. PropertiesUtil.java

    package com.vcredit.ddcash.batch.util; import java.io.BufferedReader;import java.io.File;import java ...

  10. ant学习

    如果在构建文件当中depends后面有多个依赖,而且这多个依赖还相互依赖,那么只会执行被依赖的任务,不会重复执行任务 ant学习