poj 1844 数学(1+/- ... k)
来源:互联网 发布:mac磁盘恢复到单一分区 编辑:程序博客网 时间:2024/06/05 20:54
题意:给定一个数n,问其由1 2 3 4 .......k中间加上加号或者减号来表示的最小k值。比如12 = -1+2+3+4+5+6-7。
思路:一开始直接用类似背包的思路,TLE。实际上,找到第一个k,使得前k项和S≥n,在前面减去(S-n)/2即可。所以对S-n的奇偶性进行分类,如果是偶数,则可以。如果S-n是奇数,那么再看看k是奇数还是偶数,决定了需要再加上一个还是两个数才能使得S-n变成偶数。
#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <queue>#include <cstdlib>using namespace std;#define clc(s,t) memset(s,t,sizeof(s))#define INF 0x3fffffffint n;int main(){ int i,j; scanf("%d",&n); i = (int)sqrt(n*2.); for(j = i;;j++){ if(j*(j+1)/2>=n) break; } if((j*(j+1)/2-n) % 2 == 0){ printf("%d\n",j); }else{ if(j&1) printf("%d\n",j+2); else printf("%d\n",j+1); } return 0;}
0 0
- poj 1844 数学(1+/- ... k)
- POJ 1844 Sum(数学)
- poj 3725 I know the k-th integer(数学计算找规律)
- ZOJ 2975 数学(K)
- poj 1844 数学问题
- poj 1844 sum (数学)
- poj 1844 Sum 【数学】
- POJ数学(ZZ)
- poj 1840 (数学)
- POJ 2853 (数学)
- noip2006 2^k进制数 (组合数学)
- POJ 1844 Sum【简单数学】
- poj 1844 Sum ( 数学思维 )
- POJ 2140(数学问题)
- POJ 3737 UmBasketella (数学)
- poj 3196(水数学)
- POJ数学题目(转载)
- poj 1809 Regetni(数学)
- CFileDialog类应用详解
- IP网际协议
- CSS链接样式设置
- isis_receive:收包流程
- 菜鸟系列——pollard_rho分解质因子
- poj 1844 数学(1+/- ... k)
- HDU5001 Walk
- Android 通过广播接听Home键
- 03-树1. 二分法求多项式单根(20) Python
- postgresql继承方式实现分区
- hdoj 4006 The kth great number
- Number of Digit One
- 收藏网址
- symbolicatecrash工具