首页 > 其他分享 >poj 1844 sum (数学)

poj 1844 sum (数学)

时间:2023-07-18 19:38:40浏览次数:37  
标签:int sum 最小 1844 偶数 poj 等于 include


题意:给出一个数S,从1到N个数,每个数前面可以是负号或者是正号,这样累加起来,结果可以等于S,问最小的N是多少。

题解:因为从1一直加到n的值(假设为sum(n))等于sum的n是最小的。所以我们先算出sum(n)大于等于sum的那个n。

这样我们可以得出一个值m = sum(n) - sum.如果m==0那么n就是我们要求的最小的n。否则

因为你减一个数相当于在sum(n)里减去这个数的两倍。

所以如果m是奇数的话,那么这时你不可能在前面把某些+号变成-号,使得其值等于sum。

因此m必须是偶数,如果不是偶数,则使n=n+1,继续判断,直到为偶数为止。

又因为m/2这个数一定会在1到n之间的,所以此时的n刚好是最小的。

 

代码:

 

#include <iostream>
#include <cmath>
#include <cstdio>
using namespace std;
#define eps 1e-7

int main(){
    //freopen("C:\\Users\\dengzt\\Desktop\\in.txt","r",stdin);
    //freopen("C:\\Users\\dengzt\\Desktop\\out.txt","w",stdout);
    int sum, n, m;
    while(cin>>sum){

        double i = (sqrt(8*sum+1) - 1.0)/2;
        int j = i;
        if( fabs(i - j) > eps)j++;
        m = j *(j+1)/2;
        n = m - sum;
        if(!n){
            cout << j<<endl;
        }
        else {
            while(1){
                if(n % 2== 0){
                    cout << j<<endl;
                    break;
                }
                else {
                    j ++;
                    m = j * (j + 1)/2;
                    n = m - sum;
                }
            }
        }
    }
    return 0;
}

 

标签:int,sum,最小,1844,偶数,poj,等于,include
From: https://blog.51cto.com/u_16192154/6767437

相关文章

  • poj 2311 Cutting Game (sg函数)
    小记:这题是对sg函数的初步理解。对于sg函数只要g[x]==0,则此时为必败态。x作为后继,我们就要对所有的后继进行标记,然后mex之。因为每次只能切一刀,所以切完之后,会有两块方格,而对每一块方格进行游戏又会有一个sg函数值,所以根据sg函数的性质,它这一刀所代表的后继,即为这两块方格的sg函......
  • poj 1632 Vase collection
    题意:有n个花瓶,每个花瓶都带有两种属性-形状和颜色,而每种属性都有36种不同的状态。求最大的k,使得k*k个花瓶的形状和颜色都有k种状态,且k*k个花瓶的两种属性都是由形状和颜色的k种状态组合而成的。题解:我们用一个数组(comb[])存放形状和颜色,数组的下标为形状,然后将颜色状态压缩成为数组......
  • poj 1777 Vivian's Problem
    题意:给出K个数,p1,p2,……pk,不一定是素数,给这些数添加指数,0-10之间,最终的乘积为n,他的所有因子和为m,问是否存在一个m为2的幂,如果有多个输出最大的指数,如果没有输出NO。梅森素数 我们把满足E=2^i-1的素数E称作梅森素数。关于梅森素数,有一个重要的定理:“一个数能够写成几个......
  • POJ 1410 Intersection
    判断线段与多边形是否相交。模板:#include<stdio.h>#include<math.h>#include<algorithm>usingnamespacestd;#definePi3.14159265358979#definePRECISION1e-8//点typedefstruct{doublex,y;}POINT;//直线两点的表达structLINE{POINTp1,p2;};......
  • SMU Summer 2023 Contest Round 4
    SMUSummer2023ContestRound4A-TelephoneNumber思路:满足有8,且8后有大于等于11个数#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongtypedefpair<int,int>PII;typedefpair<string,int>PSI;typedefpair<char,int>PCI;type......
  • java bean、EJB、POJO区别
    JavaBean、EJB、POJO区别在Java开发中,我们经常会听到三个词,JavaBean、EJB和POJO。它们在Java开发中有着不同的角色和用法。本文将详细介绍它们的区别,并给出相关的代码示例。JavaBeanJavaBean是一种Java语言规范,用于描述一种可重用的组件。它是一种特殊的类,遵循一些特定的命......
  • SMU Summer 2023 Contest Round 4
    SMUSummer2023ContestRound4A.TelephoneNumber满足第一个8后面存在10个字符即可#include<bits/stdc++.h>#defineendl'\n'#defineintlonglongusingnamespacestd;intn,m;voidsolve(){cin>>n;strings;cin>>s;......
  • UVA10791 最小公倍数的最小和 Minimum Sum LCM 题解
    前言长沙市一中8机房0714模拟测1。传送门blog思路本题思路,首先我们先看$\operatorname{lcm}$,明显要使得这些数的$\operatorname{lcm}=n$那么我们就需要所有的数的质因子必须包含$n$的质因子。若$1\lea,b$,则$a\timesb\gea+b$,所以我们就有了策略。将同一个质因......
  • CodeForces 1844C Particles
    洛谷传送门CF传送门原题是[ARC092E]BothSidesMerger。Keyobservation:每个元素的下标奇偶性不改变。于是讨论最后一个数是下标为奇数还是偶数加起来的数。将下标奇偶性相同的元素分开考虑。对于下标奇偶性相同的元素,不难发现答案的上界是所有\(>0\)的元素之和(没有\(>......
  • linux 中 md5sum -c选项
     001、[root@PC1test01]#ls[root@PC1test01]#seq5>a.txt;seq3>b.txt##生成测试数据[root@PC1test01]#lsa.txtb.txt[root@PC1test01]#md5sumb.txt>md5.txt##生成b.txt的MD5值[root@PC1test01]#lsa.txtb.txtmd5.txt[root......