UVa 10290 - {Sum+=i++} to Reach N
题目:给你一个数字问将他写成连续的数字的和的形式。有几种写法。
分析:数论。
设拆成的序列个数为k,我们分两种情况讨论:
1.拆成奇数个连续数。那么设中位数是a,则有n = k * a;
2.拆成偶数个连续数,那么设中位数是a与a+1,则有n = k / 2 *(a+a+1)。
综上所述,本问题就是将n拆成2个数的乘积的形式,且当中一个一定为奇数;
问题转化成求解n中奇数因子的个数。这里求出全部的奇素因子计算组合数就可以。
说明:实际的数据规模没有题面上那么大╮(╯▽╰)╭。
#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>using namespace std;int visit[3000010];
int prime[300010];
int sizes[30010];int main()
{//筛法计算素数 memset(visit, 0, sizeof(visit)); int count = 0; for (int i = 2 ; i < 3000001 ; ++ i) { if (!visit[i]) prime[count ++] = i;for (int j = 0 ; j < count && i*prime[j] < 3000001 ; ++ j) {visit[i*prime[j]] = 1;if (i%prime[j] == 0) break;}} long long n;while (cin >> n) {while (n > 0LL && n%2LL == 0LL) n /= 2LL;int number = 0;for (int i = 1 ; i < count && n > 1LL ; ++ i) {if (n < prime[i]*prime[i]) break;if (n%prime[i] == 0LL) {sizes[++ number] = 0;while (n%prime[i] == 0LL) {n /= prime[i];sizes[number] ++;}}}if (n > 1LL) sizes[++ number] = 1;long long ans = 1LL;for (int i = 1 ; i <= number ; ++ i)ans = ans*(sizes[i]+1LL);cout << ans << endl;}return 0;
}
UVa 10290 - {Sum+=i++} to Reach N相关推荐
- UVA 1210 Sum of Consecutive Prime Numbers
https://vjudge.net/problem/UVA-1210 统计质数前缀和,枚举左右端点,这一段的区间和+1 #include<cstdio> #define N 10001 ...
- UVA 10891 SUM游戏 DP
刚看到这个题目不知道怎么个DP法,有点难想到 解法如下 设置dp[i][j]代表i到j这段子序列能获得的最大值,这样,枚举m=min(m,dp[i+1到j][j],dp[i][i到j-1]),m就代表 ...
- 《题目与解读》红书 训练笔记目录《ACM国际大学生程序设计竞赛题目与解读》
虽然2012年出版的老书了,但是是由三次世界冠军的上海交大ACM队出版的书籍,选择的题目是ACM经典中的经典,书中有非常详细的题解,可以学到很多东西,值得一刷. 目录 第一部分 第一章 数学 1.1 ...
- Storm概念学习系列之storm-starter项目(完整版)(博主推荐)
这是书籍<从零开始学Storm>赵必厦 2014年出版的配套代码! storm-starter项目包含使用storm的各种各样的例子.项目托管在GitHub上面,其网址为: http:// ...
- bellman ford 算法 判断是否存在负环
Flyer 目录视图 摘要视图 订阅 微信小程序实战项目--点餐系统 程序员11月书讯,评论得书啦 Get IT技能知识库,50个领域一键直达 关闭 bellman for ...
- 【Codeforces 1426 D】Non-zero Segments,贪心,前缀和,数组子段统计
problem D. Non-zero Segments time limit per test2 seconds memory limit per test256 megabytes inputst ...
- 紫书《算法竞赛入门经典》
紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...
- 计算机网络三元组,三元组
三元组是指形如((x,y),z)的集合(这就是说,三元组是这样的偶,其第一个射影亦是一个偶),常简记为(x,y,z). 三元组是计算机专业的一门公共基础课程--数据结构里的概念.主要是用来存储稀疏矩阵 ...
- 28行代码AC——Minimum Sum LCM UVA - 10791(最大质因子)
励志用尽量少的代码做高效表达 题目(提交)链接-->UVA - 10791 题意 输入正整数n,找至少两个数,使得他们的最小公倍数(Least Common Multiple)为n且要输出最小的 ...
最新文章
- 在 Swift 中调用 OC 代码
- 【大学课程】计算机组成原理知识点
- Vue项目中遇到了大文件分片上传的问题
- linux运行中望cad,国产CAD软件中望的Linux版适配UOS, 我在国产系统里试了试
- 引擎优化的facebook中文网
- Jquery跨域请求php数据(jsonp)
- java实验报告的原理_JAVA实验报告
- DeepSort轨迹跟踪方法
- 征集开始!2022年湖北省人工智能 大数据十大优秀应用案例征集申报时间要求及征集范围、注意事项
- FBI教你破解身体语言
- iphone如何刷android系统升级,iphone4s如何刷成android系统?
- 英伟达账号为什么登录不了_n卡的geforce experience登录不了怎么办?
- (python)爬虫----八个项目带你进入爬虫的世界
- linux下自动删除文件夹,如何在Linux中自动删除或清理/tmp文件夹内容?
- GEF原理及实现系列(二、模型)
- css3动画数字变化,css3动画的更深层次的探究(矩阵变换)
- css中zoom的用法
- uni-app使用canvas将两张图片合成一张图片
- 凯云水利水电工程造价管理系统 技术解析(四)取费管理(一)
- Unknown column 'xxxx' in 'field list'
热门文章
- Nilearn中的Matplotlib颜色图
- JStorm与Storm源码分析(八)--计时器工具-mk-timer
- 开源代码维护人员大诉苦水,超半正考虑或已经决定放弃
- 延长端粒续命有风险,科学家警告:端粒过长反而容易患癌
- 国产AI框架再进化!百度Paddle Lite发布:率先支持华为NPU在线编译,全新架构更多硬件支持...
- python数据挖掘试题四十道,你敢来挑战吗?
- [译][Tkinter 教程10] Text 控件
- 禁用微信 webview 调整字体大小
- 工具类:关于如何找到两个List数组中不同的数据的算法!
- 并查集hdu1232