题意很简单就是给你一个N和M,让你求在1-N的那些个子序列的值等于M

首先暴力法不解释,简单超时

再仔细想一想可以想到因为1-N是一个等差数列,可以运用我们曾经学过的只是来解决

假设开始的位置为s,结束的位置为t,那么一定要满足这个等式

(s+t)(t-s+1)=2*m

又因为S和T都是整数,所以左边的括号中每一项都是等式

所以s+t和t-s+1一定是2*m的因式

所以分解因式并带入就可以求出s和t

假设

s+t=a

t-s+1=b

a*b=2*m

解得

s=(a-b+1)/2

t=(a+b-1)/2

很明显a>b,因为题目都是从小到大排列,所以在选取的时候可以倒叙进行寻找a

另外要注意并不是每一个a,b都可以算出一个s,t的,所以要临时判断一下

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std; int n,m,s,t,sum,a,b; int main(){
while(cin>>n>>m,n!= && m!=){
/*
s=1;
t=1;
sum=0;
for (t=1;t<=n;t++){
sum+=t;
while(sum>m) sum-=s++;
if (sum==m) printf("[%d,%d]\n",s,t);
}
//暴力版
*/
m*=;
for (int i=sqrt(m);i>=;i--){
if (!(m%i)){
a=m/i;
b=i;
if ((a-b+)%) s=;
else s=(a-b+)/;
if ((a+b-)%) t=;
else t=(a+b-)/;
if (s<=n && t<=n && s>= && t>=) printf("[%d,%d]\n",s,t);
}
}
printf("\n");
}
return ;
}

【HDOJ】P2058 The sum problem的更多相关文章

  1. 【HDOJ】4729 An Easy Problem for Elfness

    其实是求树上的路径间的数据第K大的题目.果断主席树 + LCA.初始流量是这条路径上的最小值.若a<=b,显然直接为s->t建立pipe可以使流量最优:否则,对[0, 10**4]二分得到 ...

  2. 【HDOJ】3473 Minimum Sum

    划分树解.主席树解MLE. /* 3473 */ #include <iostream> #include <sstream> #include <string> ...

  3. 【HDOJ】4267 A Simple Problem with Integers

    树状数组.Easy. /* 4267 */ #include <iostream> #include <string> #include <map> #includ ...

  4. 【HDOJ】1003 Max Sum

    最开始使用递归DP解,stack overflow.化简了一些,复杂度为O(n)就过了. #include <stdio.h> int main() { int case_n, n; in ...

  5. 【HDOJ】1244 Max Sum Plus Plus Plus

    这题目一直wa,原来是因为我把JUDGE写错了,对拍了一下午都没检查出来.水DP啊. #include <cstdio> #include <cstring> #include ...

  6. 【HDOJ】3828 A + B problem

    显然需要贪心,重叠越长越好,这样最终的串长尽可能短.需要注意的是,不要考虑中间结果,显然是个状态dp.先做预处理去重,然后求任意一对串的公共长度. /* 3828 */ #include <io ...

  7. 【HDOJ】1016 Prime Ring Problem

    经典DP,写的可能麻烦了一些. #include <stdio.h> #define false 0 #define true 1 ]; ]; ]; void DFS(int, int, ...

  8. 【题解】CF986E Prince's Problem(树上差分+数论性质)

    [题解]CF986E Prince's Problem(树上差分+数论性质) 题目大意: 给定你一棵树,有点权\(val_i\le 10^7\).现在有\(m\)组询问给定参数\(x,y,w\)问你对 ...

  9. 【BZOJ3489】A simple rmq problem(KD-Tree)

    [BZOJ3489]A simple rmq problem(KD-Tree) 题面 BZOJ 题解 直接做肯定不好做,首先我们知道我们是一个二维平面数点,但是限制区间只能出现一次很不好办,那么我们给 ...

随机推荐

  1. .NET简介

    |   版权声明:本文为博主原创文章,未经博主允许不得转载. 微软跨语言运行的主要机制就如上图类似,其最重要的部分是CLR和MSIL:其中MSIL是微软中间语言,它的主要的作用是将不同 的语言,如:C ...

  2. HBase优化——读写优化

    Hbase2.0查询优化 1)设置scan缓存 HBase中Scan查询可以设置缓存,方法是setCaching(),这样可以有效的减少服务端与客户端的交互,更有效的提升扫描查询的性能. Scan s ...

  3. python中datetime模块中strftime/strptime函数

    f==format p==parse 1.获取当前时间(日期格式) from datetime import datetime datetime.now()#输出 datetime.datetime( ...

  4. Codeforces 488C Fight the Monster

    Fight the Monster time limit per test             1 second                                   memory ...

  5. Python第九节 条件和循环

    while...else 当满足while循环条件的时候执行循环体内的语句,否则执行else的语句例如下面的例子: count = 1 while count <= 5: print(" ...

  6. display: flex属性介绍

    参考文章: 阮大神的:Flexbox 布局的最简单表单(主要讲解项目item上的属性) 另一位大神的:布局神器display:flex(整体讲解的非常详细) 之前没有仔细看flex布局(弹性布局),设 ...

  7. 【Luogu】【关卡2-16】线性动态规划(2017年10月)【还差三道题】

    任务说明:这也是基础的动态规划.是在线性结构上面的动态规划,一定要掌握. P1020 导弹拦截 导弹拦截 P1091 合唱队形 老师给同学们排合唱队形.N位同学站成一排,音乐老师要请其中的(N-K)位 ...

  8. 使用SOAPui 笔记

    对接Oracle Fusion Application的SOAP. 遇到 <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soa ...

  9. CSIC_716_20191225【HTML基础入门】

    HTTP协议 超文本传输协议HyperText Transfer Protocol 四大特性: 1.一次请求一次响应 2.基于TCP/IP协议,作用于应用层 3.无状态 4.无连接 数据格式: 1.请 ...

  10. Add cast to是什么意思

    eclipse中是强制类型转换的意思.