hdoj:2058
#include <iostream>
#include <cmath>
#include <vector>
using namespace std; struct node{
int left;
int right;
};
int main()
{
long N, M;
long long sum = ;
vector<node> nodes;
while (cin >> N >> M)
{
if (N == && M == )
break; for (long n = N; n >=; n--)
{
if ((*M-n*n+n)%(*n)!=)
continue;
long long a1 = ( * M - n*n + n) / ( * n); long long an = a1 + n - ;
if (a1 >= && a1 <= N && an >= && an <= N && a1 <= an)
{
//node node;
//node.left = a1;
//node.right = an;
//nodes.push_back(node);
cout << "[" << a1 << "," << an << "]" << endl;
}
}
//for (node node : nodes)
//{
// cout << "[" << node.left << "," << node.right << "]" << endl;
//}
cout << endl;
}
return ;
}
超时
a1 = k
an = k + n - 1
M = n*(2k+n-1)/2
解的
k = M/n - (n-1)/2,这个不能这样写,要写在一起
(2M-n*n-n)/(2*n)。否则对于30/4 - 3/2,会忽略这样的结果,如果先通分当然也就可以。
超时
利用a1>=1这个条件可以减少循环次数
2M - n*n >n
2M > n*n - n>n*n
sqrt(2M)>n
#include <iostream>
#include <cmath>
#include <vector>
using namespace std; struct node{
int left;
int right;
};
int main()
{
long N, M;
long long sum = ;
vector<node> nodes;
while (cin >> N >> M)
{
if (N == && M == )
break; for (long n = sqrt(*M); n >=; n--)
{
if ((*M-n*n+n)%(*n)!=)
continue;
long a1 = ( * M - n*n + n) / ( * n); long an = a1 + n - ;
if (a1 >= && a1 <= N && an >= && an <= N && a1 <= an)
{
//node node;
//node.left = a1;
//node.right = an;
//nodes.push_back(node);
cout << "[" << a1 << "," << an << "]" << endl;
}
}
//for (node node : nodes)
//{
// cout << "[" << node.left << "," << node.right << "]" << endl;
//}
cout << endl;
}
return ;
}
hdoj:2058的更多相关文章
- 算法——A*——HDOJ:1813
Escape from Tetris Time Limit: 12000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- hdoj:题目分类
基础题: 1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029.1032.1037.1040.1048.1056.1058. ...
- HDOJ:1533-Going Home(最小费用流)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1533 解题心得: 第一次写最小费用流的题,去hdoj上找了一个入门级题目,建图比较简单,用了spfa和 ...
- hdoj:2086
A1 = ? Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- hdoj:2085
核反应堆 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- hdoj:2084
数塔 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...
- HDOJ:6333-Problem B. Harvest of Apples(组合数学+莫队算法+逆元)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6333 解题心得: 这个题可以说是十分精彩了,首先推组合数学的公式,其中一个很重要的公式是Cnm = C ...
- HDOJ:6356-Glad You Came(线段树剪枝)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6356 解题心得: 现在深深的知道了算法复杂度的重要了,这个题算复杂度的时候还要把一些常数也算出来,不然 ...
- hdoj:2075
A|B? Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
随机推荐
- 【整理】Java 9新特性总结
距Java 8正式发布三年多时间,Java 9 于2017年9月21日正式发布, 你可能已经听说过 Java 9 的模块系统(讨论的最多的),但是这个新版本还有许多其它的更新. 这里我整理了Java ...
- 从零开始搭建一个从Win7环境备份至CentOS7的SVN双机备份环境
★几个关键的事项★ 需要关闭防火墙filewalld跟selinux ,在root用户下操作: [root@localhost svnRepos]# systemctl stop firewalld ...
- entity framework core 2.0 & sqlite 配置教程
我用的是vs2017,需要下载.net core 2.0 sdk. .net core 下载地址:点我下载 1.在Visual Studio之中创建一个.net core的控制台项目 2.修改cspr ...
- [jzoj]1729.blockenemy
Link https://jzoj.net/senior/#main/show/1729 Description 你在玩电子游戏的时候遇到了麻烦...... 你玩的游戏是在一个虚拟的城市里进行,这个城 ...
- ssm数据库异常问题
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.Reflecti ...
- JAVA自学作业03
JAVA自学作业03 1.请用最有效率的方式计算2*8的结果 使用位运算是最有效率的. System.out.println(2<<3); 2.请交换两整数的值 int x = 10; i ...
- 外卖ERP管理系统(一)
京门时代外卖ERP是北京京门时代科技有限公司旗下一款专业的外卖ERP系统管理软件. 本ERP目前己经对接了百度.饿了么.美团以等各外卖平台,在配送方面对接了闪送快递.人人快递.UU跑腿以及达达配送. ...
- log4j2自定义Appender(输出到文件/RPC服务中)
1.背景 虽然log4j很强大,可以将日志输出到文件.DB.ES等.但是有时候确难免完全适合自己,此时我们就需要自定义Appender,使日志输出到指定的位置上. 本文,将通过两个例子说明自定义APP ...
- @RequestBody, @ResponseBody 注解详解(转)
原文地址: https://www.cnblogs.com/qq78292959/p/3760651.html @RequestBody, @ResponseBody 注解详解(转) 引言: 接上一篇 ...
- shell编程学习笔记(六):cat命令的使用
这一篇不是讲shell编程的,专门讲cat命令.shell编程书用到了这个cat命令,顺便说一下cat命令. cat命令有多种用法,我一一来列举(以下蓝色字体部分为Linux命令,红色字体的内容为输出 ...