POJ 2100 · Graveyard Design【尺取法】
来源:互联网 发布:阿里云降价 编辑:程序博客网 时间:2024/05/31 13:15
【题意】
国王G最近决定重新设计一下皇陵。这个陵园必须包括两个部分:每个坟墓必须是正方形的;必须由不同数量的坟墓组成。国王G在和他的占星家们讨论一番,他决定坟墓的边长必须是连续正整数的序列。一条边长为
限制条件:
【提炼】
求k组满足条件的
【分析】
求连续平方数之和等于给定的数
题目要求存下满足条件的多组序列。
由于要提前输出组数和每组的长度,所以采用vector + pair来存数组。右戳链接
Tips:判读退出条件注意暂存一个值来判断,不然wa到你怀疑人生。
【时间复杂度】
根据完全平方数的性质,正整数n以内的完全平方数数量总数为
【代码】
/* coder: Tangent Chang date: 2017/5/11 A day is a miniature of eternity. by Emerson*/#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <cmath>#include <string>#include <algorithm>#include <vector>#include <queue>#include <set>#include <map>using namespace std;typedef long long ll;const int maxn = 10005;vector< pair<ll, ll> > ans;int main() { ll n; while (scanf("%lld", &n) != EOF) { ans.clear(); ll kk = 0; ll s = 1, t = 1, sum = 0, sq = 0; if (n == 0) break; while (1) { while (sum < n) { sq = t * t; sum += sq; t++; } if (sq > n) break; if (sum == n) { ans.push_back(make_pair(s, t)); } sum -= s * s; s++; } kk = ans.size(); printf("%lld\n", kk); for (ll i = 0; i < kk; ++i) { ll l = ans[i].first; ll r = ans[i].second; printf("%lld", r - l); for (ll j = l; j < r; ++j) { printf(" %lld", j); } puts(""); } } return 0;}
0 0
- POJ 2100 · Graveyard Design【尺取法】
- POJ 2100 - Graveyard Design(尺取法)
- POJ - 2100 Graveyard Design(尺取法)
- POJ-2100Graveyard Design(尺取法)
- POJ 2100 Graveyard Design(尺取法)
- poj 2100 Graveyard Design(尺取法)
- POJ 2100 Graveyard Design 尺取法
- POJ - 2100 Graveyard Design(尺取法)
- POJ 2100 Graveyard Design(尺取法)
- POJ 2100 Graveyard Design 尺取法(滑动窗口)
- POJ2100-Graveyard Design【尺取法】
- poj2100 Graveyard Design 尺取法
- POJ2100 Graveyard Design【尺取法】
- NUC1840 Graveyard Design【尺取法】
- poj-2100 Graveyard Design
- POJ 2100 Graveyard Design
- POJ 2100 Graveyard Design
- poj 2100 Graveyard Design
- 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。(笔试题) 句子中单词以空格符隔开。为简单起见,没有标点符号。 例如输入“I am a student”,则输出“student a
- Linux下的查找指令
- QT QWidget设置窗体透明度方法汇总
- ElasticsearchCRUD使用(五)【Elasticsearch中的子文档,父文档】
- python 3种 多线程方法
- POJ 2100 · Graveyard Design【尺取法】
- xgboost使用小结
- Android 状态保存与恢复流程 完全解析
- BZOJ 4010 [HNOI2015]菜肴制作 拓扑排序
- 逻辑推理
- bzoj刷题记录5.11-5.15
- 面试常见的二叉树问题
- 走格子问题
- 38题 循环嵌套