Sum(构造,枚举)

原题连接http://acm.hnu.cn/online/?action=problem&type=show&id=13396

这道题并不难,他已经给出公式了

k+k+1+k+2+k+3+....+b=N;

我们可得(2*k+d-1)*d=2*N;然后我们从2~根号2*n枚举d,看它是否满足整除关系= =

 1 #include<stdio.h>
 2 #include<iostream>
 3 #include<algorithm>
 4 #include<string.h>
 5 #include<math.h>
 6 int main()
 7 {
 8     int t,n;
 9     scanf("%d",&t);
10     while(t--)
11     {
12         int flag=0;
13         int l,r;
14         scanf("%d",&n);
15         n=2*n;
16         for(int i=2;i<=sqrt(n);i++)
17         {
18             if(n%i==0)
19             {
20                    int ans=n/i;
21                     if((ans-i+1)%2==0)
22                     {
23                         l=(ans-i+1)/2;
24                         r=l+(i-1);
25                         flag=1;
26                          break;
27                   }
28             }
29             }
30         if(flag==0)
31         printf("IMPOSSIBLE\n");
32         else
33         {
34             printf("%d = ",n/2);
35             for(int i=l;i<r;i++)
36             printf("%d + ",i);
37             printf("%d\n",r);
38         }
39     }
40     return 0;
41 }
时间: 2025-01-01 10:07:21

Sum(构造,枚举)的相关文章

HDU 4961 Boring Sum 构造题

用一个数组c, c[i]表示i这个数出现的最近数字是几. 那么当加入一个6,则 c[1] = c[2] = c[3] = c[6] = 6; ==最近怎么都要开挂啊.. #include <cstdio> #include <iostream> #include <cstring> #include <algorithm> using namespace std; typedef long long ll; const int N = 100005; inl

bzoj 1257: [CQOI2007]余数之和sum 数学 &amp;&amp; 枚举

1257: [CQOI2007]余数之和sum Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 1779  Solved: 823[Submit][Status] Description 给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod 3 + … + k mod n的值,其中k mod i表示k除以i的余数.例如j(5, 3)=3 mod 1 + 3 mod 2 + 3 mod 3 + 3 mod 4 + 3

hdu2058 The sum problem(枚举~~等差数列求和公式)

The sum problem Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 17697    Accepted Submission(s): 5275 Problem Description Given a sequence 1,2,3,......N, your job is to calculate all the possibl

黑马程序员——【Java高新技术】——JDK1.5新特性:静态导入、可变参数、增强型for循环、自动装箱拆箱、枚举

一.静态导入 1.import和import static区别: (1)import 是导入一个类或某个包中所有的类. (2)import static是导入一个类中的某个静态方法或所有的静态方法. 注:在调用静态导入的类的静态方法时,可以不用再写类名.如Arrays.sort(int[])可以直接写sort(int[]); 2.静态导入的写法: (1)import static java.util.Arrays.*;   表示导入Arrays类中的所有静态成员. (2)import stati

高新技术---枚举及部分JDK1.5新特性

第一讲     枚举 一.概述 这里说的枚举,不是集合vector的特有枚举迭代器,而是JDK1.5的一个新特性.之所以单独拿它开刷,是这个知识点比较重要,同时相对来说比较难理解一些. 为什么要有枚举 问题:要定义星期几或性别的变量,该怎么定义?假设用1-7分别表示星期一到星期日,但有人可能会写成int weekday = 0;或即使使用常量方式也无法阻止意外. 枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错.枚举可以让编译器在编译时就可以控制源程序中填写的非法

NEFU 506&amp;&amp;ZOJ 3353 Chess Board (四种构造的高斯消元)

题目链接 题意:有四种翻转方式,问是否能使得所有棋子都变为0,求最小步数. 题解:依次构造枚举求出最小值即可. #include <iostream> #include <cstdio> #include <cmath> #include <cstring> #include <algorithm> #include <queue> #include <vector> #include <map> #inclu

5.9 enum--支持枚举类型

enum模块提供了枚举类型的支持.枚举类型是由一个名称和一个统一值来组成,值是常量的值,它们之间可以通过名称进行比较和引用,还可以迭代访问. 5.9.1 模块内容 本模块主要定义了两种枚举类型:Enum和IntEnum.定义了一个装饰器函数unique(),以便保证所有枚举常量的唯一性. class enum.Enum 构造枚举常量的基类. 例子: #python 3.4 import enum class Color(enum.Enum): red = 1 green = 2 blue = 3

java枚举类型详解

枚举类型是JDK1.5的新特性.显然,enum很像特殊的class,实际上enum声明定义的类型就是一个类.而这些类都是类库中Enum类的子类(java.lang.Enum<E>).它们继承了这个Enum中的许多有用的方法. 示例: 1 public enum Color { 2 3 RED("红色"),BLUE("蓝色"),WHITE("白色"),BLACK("黑色"),YELLO("黄色")

Swift 中枚举

Swift 中枚举高级用法及实践 字数11017 阅读479 评论0 喜欢20 title: "Swift 中枚举高级用法及实践"date: 2015-11-20tags: [APPVENTURE]categories: [Swift 进阶]permalink: advanced-practical-enum-examples 原文链接=http://appventure.me/2015/10/17/advanced-practical-enum-examples/作者=Benedik