题目链接:http://poj.org/problem?id=2853

题意:某些正整数可由几个连续数相加而成,且方法可能有多种,如3 = 1 + 2, 9 = 4 + 5 = 2 + 3 + 4

给出任意小于2^31的正整数,问有多少种方法。

思路:其实就是关于公差为1的等差数列的问题。

由 num = (a1 + an) * n / 2 , an = a1 + n - 1可以得到

令 k = 2 * num / n

则a1 = (k - n + 1) / 2, an = (k + n - 1)

所以枚举sqrt(2 * num) 的所有因子,每一组因子中小的为n,大的为k

求出对应的a1,an,若满足大于0,小于num,是整数这些条件,ans++

 1 #include <iostream>
 2 #include <cstring>
 3 using namespace std;
 4 
 5 //const int M = 100000;
 6 const int N = 200000;
 7 //int pr[M], pri;
 8 /*
 9 void prime()
10 {
11     pr[0] = 2; pr[1] = 3; pr[2] = 5; pr[3] = 7;
12     pri = 4;
13     for(int i=11; i<=N; i++)
14     {
15         int flag = 0;
16         for(int i=0; i<pri; i++)
17         {
18             if(i%pr[pri]==0)
19             {
20                 flag = 1;
21                 break;
22             }
23         }
24         if(flag == 0)
25             pr[pri++] = i;
26     }
27 }
28 */
29 int main()
30 {
31     int n, no;
32     long long num;
33     //prime();
34     cin >> n;
35     for(int i=1; i<=n; i++)
36     {
37         cin >> no >> num;
38         if(num==0 || num==1 || num==2)
39             cout << no << " 0" << endl;
40         else
41         {
42             int ans = 0;
43             num *= 2;
44             for(int j=2; j*j<=num; j++)
45             {
46                 if(num%j==0)
47                 {
48                     long long k = num / j;
49                     long long a1 = (k + 1 - j) / 2, an = (k + j - 1) / 2;
50                     if(a1>0 && an <num && a1*2 == (k+1-j) && an*2==(k+j-1))
51                         ans++;
52                     //cout << j << "        " << a1 << "     " << an << endl;
53                 }
54             }
55             cout << no << " " << ans << endl;
56         }
57     }
58 
59     return 0;
60 }

View Code

------------------------

这题浪费了很多时间,还是用笔演算清楚才去敲比较好。。。

转载于:https://www.cnblogs.com/byluoluo/p/3454048.html

POJ 2853 Sequence Sum Possibilities相关推荐

  1. POJ 2479 Maximum sum

    http://poj.org/problem?id=2479 题意: 给出一个整数串,求连续子串1和连续子串2,不相交并且串1加串2的和最大. 思路: 其实就是求最大连续和,题意要求就是求两段最大连续 ...

  2. POJ - 3581 Sequence(后缀数组)

    题目链接:点击查看 题目大意:给出一个数列,保证第一个数一定大于其余的所有数,现在需要让我们将其分为连续的三段,每一段独立反转后保证字典序最小,题目要求输出反转后字典序最小的数列 题目分析:因为第一个 ...

  3. POJ 3581 Sequence ——后缀数组 最小表示法

    [题目分析] 一见到题目,就有了一个显而易见obviously的想法.只需要每次找到倒过来最小的那一个字符串翻转就可以了. 然而事情并不是这样的,比如说505023这样一个字符串,如果翻转了成为320 ...

  4. HOJ题目分类//放这儿没事刷刷学算法!嘻嘻!

    各种杂题,水题,模拟,包括简单数论. 1001 A+B 1002 A+B+C 1009 Fat Cat 1010 The Angle 1011 Unix ls 1012 Decoding Task 1 ...

  5. sicily题目分类

    sicily题目分类 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. ...

  6. [sicily]部分题目分类

    sicily题目分类 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. ...

  7. Sicily 题目分类

    依照自己水平挑着做→ →~~ 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 ...

  8. 编程题目分类(剪辑)

    1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. 模拟 12. 算术与代 ...

  9. 中大SICILY分类

    原文出处:http://linguifan2010.blog.163.com/blog/static/1315127442010102131322482/ ********************** ...

最新文章

  1. Spring: DispacherServlet和ContextLoaderListener中的WebApplicationContext的关系
  2. java第10次作业 计科1501 张鹏
  3. String 堆内存和栈内存
  4. Vue学习(一)-邂逅Vuejs
  5. 解决ubuntu Gvim 菜单乱码
  6. 前端打包利器webpack里utils.cssLoaders的工作原理调试
  7. 新电子书:解决生产中Java应用程序错误的完整指南
  8. 条件测试 linux,Linux的条件测试
  9. 基于 Flink 构建 CEP 引擎的挑战和实践
  10. [excel]解决Excel和txt转换出现的“问题
  11. 微信小程序--云开发静态网站h5跳小程序
  12. “铭赛科技”科创板IPO:“机器人王国梦”价值几何?
  13. 如何截取音频片段并制作成手机铃声
  14. python苹果下载软件助手哪个好_Mac App Store有哪些值得推荐的软件?为什么?
  15. 电脑文件不小心删除了怎么恢复 ? 删除的文件如何恢复文件?
  16. 地图热区随屏幕大小改变
  17. 如何申请专利费用减免?
  18. win10系统cf连接服务器失败,win10系统cf连接服务器失败的解决方法
  19. setpagecache.php_一个PHP页面缓存类 修改后可作Emlog缓存插件
  20. vue+css漂亮的定制日历

热门文章

  1. 同步通信和异步通信区别
  2. 将十六进制的字符串转换成整数
  3. 引用和指针的区别?传引用比传指针安全,为什么?如果我使用常量指针难道不行吗?
  4. LDAP落地实战(三):GitLab集成OpenLDAP认证
  5. shell字符串截取总结
  6. Linux基础 -- 命令执行顺序控制与管道
  7. 深圳华强电子交易网络有限公司3.15大会再获大奖
  8. nginx访问控制:如何通过map来控制http_x_forwarded_for访问限制
  9. linux perf - 性能测试和优化工具
  10. 马哥2013年运维视频笔记 day02 Linux系统常识