HDU(2058)条件限制
来源:互联网 发布:大数据概念股龙头 编辑:程序博客网 时间:2024/04/28 22:20
刚开始用的是枚举,结果不出意外的超时了,分析了一下,这题主要考察等差数列的运用,看来数学学得扎实,程序才能简洁,才能高效,重视先数学思维,再程序实现,数学好,才是真的好。
等差数列求和公式:
Sn=(a1+aN)*n/2
=(a1+a1+d(n-1))*n/2
=a1*n+d(n-1)*n/2;
若想使N项的和等于M,先看看N的最大值为多少,然后再逐级递减至1,这一步很关键,可以节省很多时间,
N(max) = sqrt( 2 * M ) ;
a1*n = M - (n - 1)*n / 2 ;
如果 ( M - (n - 1)*n / 2 ) % n == 0 ,则a1为首项 ;
#include<stdio.h>#include<cmath>int main() { int N , M ; while(scanf("%d%d",&N,&M) != EOF) { if(N==0&&M==0) return 0 ; int len = (int)sqrt(M*2.0); int a1_len = 0 ; for(;len > 0 ; len--) { a1_len = M - len * (len-1) / 2 ; if(a1_len%len == 0) { printf("[%d,%d]\n",a1_len/len,a1_len/len + len - 1); } } printf("\n"); } return 0 ;}
0 0
- HDU(2058)条件限制
- Nightmare hdu 1072 限制条件
- HDU(2056)程序中的条件限制
- hdu——4341(有限制条件的dp)
- HDU 3466 Proud Merchants 条件限制01背包
- HDU 2159 FATE(完全背包:二维限制条件)
- hdu 4460 Friend Chains (限制条件的spfa)
- hdu 3127 完全背包 二维限制条件 放置顺序相关性
- hdu 1728 逃离迷宫(BFS 有 限制条件,陷阱比较多)
- hdu 3790 最短路径问题(两个限制条件的最短路)
- 01背包(给容量增加限制条件) 之 hdu 3466
- HDU 5188 zhx and contest(带限制条件的 01背包)
- shell 限制用户输入条件
- 连接查询的限制条件
- UITextField 输入限制条件汇总
- 11.4 半联结限制条件
- 11.9 反联结限制条件
- poj 2392背包条件限制
- CSS设置DIV居中显示
- Android进程线程之同步互斥(一)
- Linux内核启动流程分析(二) 写的非常好
- 字符串匹配算法——利用有限自动机进行匹配
- AFNetworking读取和设置cookie的解决方案
- HDU(2058)条件限制
- Hashtable简介和使用
- 黑马程序员---交通灯管理系统
- Random类 (java.util) 【转】
- Linux 初始 RAM 磁盘(initrd)概述
- Audioflinger
- 都在说“大数据”,那它到底能帮企业什么忙?
- 【Android】状态栏通知Notification、NotificationManager详解
- 阿里联合中国移动颠覆腾讯(转)