Codeforces 715A & 716C Plus and Square Root【数学规律】 (Codeforces Round #372 (Div. 2))
C. Plus and Square Roottime limit per test2 seconds
memory limit per test256 megabytes
inputstandard input
outputstandard output
ZS the Coder is playing a game. There is a number displayed on the screen and there are two buttons, ' + ' (plus) and '
' (square root). Initially, the number 2 is displayed on the screen. There are n + 1 levels in the game and ZS the Coder start at the level 1.
When ZS the Coder is at level k, he can :
- Press the ' + ' button. This increases the number on the screen by exactly k. So, if the number on the screen was x, it becomesx + k.
 - Press the '
 ' button. Let the number on the screen be x. After pressing this button, the number becomes
. After that, ZS the Coder levels up, so his current level becomes k + 1. This button can only be pressed when x is a perfect square, i.e. x = m2 for some positive integer m.
Additionally, after each move, if ZS the Coder is at level k, and the number on the screen is m, then m must be a multiple of k. Note that this condition is only checked after performing the press. For example, if ZS the Coder is at level 4 and current number is 100, he presses the '
' button and the number turns into 10. Note that at this moment, 10 is not divisible by 4, but this press is still valid, because after it, ZS the Coder is at level 5, and 10 is divisible by 5.
ZS the Coder needs your help in beating the game — he wants to reach level n + 1. In other words, he needs to press the '
' button ntimes. Help him determine the number of times he should press the ' + ' button before pressing the '
' button at each level.
Please note that ZS the Coder wants to find just any sequence of presses allowing him to reach level n + 1, but not necessarily a sequence minimizing the number of presses.
InputThe first and only line of the input contains a single integer n (1 ≤ n ≤ 100 000), denoting that ZS the Coder wants to reach level n + 1.
OutputPrint n non-negative integers, one per line. i-th of them should be equal to the number of times that ZS the Coder needs to press the ' + ' button before pressing the '
' button at level i.
Each number in the output should not exceed 1018. However, the number on the screen can be greater than 1018.
It is guaranteed that at least one solution exists. If there are multiple solutions, print any of them.
Examplesinput3output14
16
46input2output999999999999999998
44500000000input4output2
17
46
97NoteIn the first sample case:
On the first level, ZS the Coder pressed the ' + ' button 14 times (and the number on screen is initially 2), so the number became2 + 14·1 = 16. Then, ZS the Coder pressed the '
' button, and the number became
.
After that, on the second level, ZS pressed the ' + ' button 16 times, so the number becomes 4 + 16·2 = 36. Then, ZS pressed the '
' button, levelling up and changing the number into
.
After that, on the third level, ZS pressed the ' + ' button 46 times, so the number becomes 6 + 46·3 = 144. Then, ZS pressed the '
' button, levelling up and changing the number into
.
Note that 12 is indeed divisible by 4, so ZS the Coder can reach level 4.
Also, note that pressing the ' + ' button 10 times on the third level before levelling up does not work, because the number becomes6 + 10·3 = 36, and when the '
' button is pressed, the number becomes
and ZS the Coder is at Level 4. However, 6 is not divisible by 4 now, so this is not a valid solution.
In the second sample case:
On the first level, ZS the Coder pressed the ' + ' button 999999999999999998 times (and the number on screen is initially 2), so the number became 2 + 999999999999999998·1 = 1018. Then, ZS the Coder pressed the '
' button, and the number became
.
After that, on the second level, ZS pressed the ' + ' button 44500000000 times, so the number becomes109 + 44500000000·2 = 9·1010. Then, ZS pressed the '
' button, levelling up and changing the number into
.
Note that 300000 is a multiple of 3, so ZS the Coder can reach level 3.
题目链接:
http://codeforces.com/contest/715/problem/A
http://codeforces.com/contest/716/problem/C
题目大意:
一开始你有数2,处于level1,你可以选择+或者开方,选择加那么现在的数字将加上当前的level,
选择开方当且仅当你拥有的数十完全平方数,并且开方后level会加1,还要满足开方后所剩的数字是新的level的整数倍。
问从level1到level n+1 每一次需要+的次数【任意解即可】
题目思路:
【数学规律】
如果当前level=1,那么需要两次+,把数字变为4,开方后为2,还是2的倍数。
当level i(i>1)时,通过找规律可以知道,到达level i+1 需要的+的次数为i*(i+1)*(i+1)-(i-1)。
//
//by coolxxx
//#include<bits/stdc++.h>
#include<iostream>
#include<algorithm>
#include<string>
#include<iomanip>
#include<map>
#include<stack>
#include<queue>
#include<set>
#include<bitset>
#include<memory.h>
#include<time.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//#include<stdbool.h>
#include<math.h>
#define min(a,b) ((a)<(b)?(a):(b))
#define max(a,b) ((a)>(b)?(a):(b))
#define abs(a) ((a)>0?(a):(-(a)))
#define lowbit(a) (a&(-a))
#define sqr(a) ((a)*(a))
#define swap(a,b) ((a)^=(b),(b)^=(a),(a)^=(b))
#define mem(a,b) memset(a,b,sizeof(a))
#define eps (1e-10)
#define J 10000
#define mod 1000000007
#define MAX 0x7f7f7f7f
#define PI 3.14159265358979323
#pragma comment(linker,"/STACK:1024000000,1024000000")
#define N 50004
using namespace std;
typedef long long LL;
double anss;
LL aans;
int cas,cass;
LL n,m,lll,ans;
int main()
{
#ifndef ONLINE_JUDGEW
// freopen("1.txt","r",stdin);
// freopen("2.txt","w",stdout);
#endif
LL i,j,k;
// init();
// for(scanf("%d",&cass);cass;cass--)
// for(scanf("%d",&cas),cass=1;cass<=cas;cass++)
// while(~scanf("%s",s))
while(~scanf("%I64d",&n))
{
for(i=;i<=n;i++)
{
if(i==)puts("");
else printf("%I64d\n",sqr(i+)*i-(i-));
}
}
return ;
}
/*
// //
*/
Codeforces 715A & 716C Plus and Square Root【数学规律】 (Codeforces Round #372 (Div. 2))的更多相关文章
- Codeforces Round #372 (Div. 2)
		
Codeforces Round #372 (Div. 2) C. Plus and Square Root 题意 一个游戏中,有一个数字\(x\),当前游戏等级为\(k\),有两种操作: '+'按钮 ...
 - Codeforces Round #372 (Div. 2) A	.Crazy Computer/B. Complete the Word
		
Codeforces Round #372 (Div. 2) 不知不觉自己怎么变的这么水了,几百年前做A.B的水平,现在依旧停留在A.B水平.甚至B题还不会做.难道是带着一种功利性的态度患得患失?总共 ...
 - Codeforces 715A. Plus and Square Root[数学构造]
		
A. Plus and Square Root time limit per test 2 seconds memory limit per test 256 megabytes input stan ...
 - Codeforces Round #372 (Div. 1) A. Plus and Square Root 数学题
		
A. Plus and Square Root 题目连接: http://codeforces.com/contest/715/problem/A Description ZS the Coder i ...
 - Codeforces Round #372 (Div. 2) C
		
Description ZS the Coder is playing a game. There is a number displayed on the screen and there are ...
 - Codeforces Round #372 (Div. 2) A B C 水 暴力/模拟 构造
		
A. Crazy Computer time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
 - Codeforces Round #372 (Div. 2) A ,B ,C  水,水,公式
		
A. Crazy Computer time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
 - Codeforces 715B & 716D Complete The Graph 【最短路】 (Codeforces Round #372 (Div. 2))
		
B. Complete The Graph time limit per test 4 seconds memory limit per test 256 megabytes input standa ...
 - Codeforces Round #372 (Div. 2) C. Plus and Square Root
		
题目链接 分析:这题都过了2000了,应该很简单..写这篇只是为了凑篇数= = 假设在第级的时候开方过后的数为,是第级的系数.那么 - 显然,最小的情况应该就是, 化简一下公式,在的情况下应该是,注意 ...
 
随机推荐
- 过滤掉html 标签
			
/// <summary> /// 过滤掉html标签 /// </summary> /// <param name="Htmlstring"> ...
 - 在ec2上创建root用户,并使用root 通过Xshell远程登录aws云服务器
			
1.根据官网提供的方法登录连接到EC2服务器(官网推荐windows用户使用PUTTY连接) 2. 创建root的密码,输入如下命令: sudo passwd root 3.然后会提示你输入new p ...
 - OBJECT和EMBED标签(转载)
			
一.介绍: 我们要在网页中正常显示flash内容,那么页面中必须要有指定flash路径的标 签.也就是OBJECT和EMBED标签.OBJECT标签是用于windows平台的IE浏览器的,而EMBED ...
 - vim字符串替换
			
vi/vim 中可以使用 :s 命令来替换字符串.以前只会使用一种格式来全文替换,今天发现该命令有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询. :s/vivian/s ...
 - 美好头标ToolBar
			
ActionBar我相信是每一位合格的程序员都用过的组件,也是每一个程序员都会抱怨的组件,因为他不能实现复杂的自定义.为此Google推出了比ActionBar更为美好的组件ToolBar. 本文重点 ...
 - ArrayList 类和List<T>泛型类
			
ArrayList集合类在System.Colletions命名空间下,它其实是一个特殊的数组,它可以动态的添加和删除元素,根据元素的改变自动决定它自身的大小,也可以灵活的插入元素等操作,使用起来要比 ...
 - C#线程池ThreadPool.QueueUserWorkItem接收线程执行的方法返回值
			
最近在项目中需要用到多线程,考虑了一番,选择了ThreadPool,我的需求是要拿到线程执行方法的返回值, 但是ThreadPool.QueueUserWorkItem的回调方法默认是没有返回值的,搜 ...
 - xargs rm -rf 与 -exec rm
			
# find ./ -exec rm {} \; # find ./ | xargs rm -rf 两者都可以把find命令查找到的结果删除,其区别简单的说是前者是把find发现的结果一次性传给exe ...
 - 【转】iOS-Core-Animation-Advanced-Techniques(五)
			
原文:http://www.cocoachina.com/ios/20150105/10829.html 图层时间和缓冲 图层时间 时间和空间最大的区别在于,时间不能被复用 -- 弗斯特梅里克 在上面 ...
 - VisualStudio2013&VS2015内置SQLServer入门 (三)
			
关于LocalDB的部署(publish): 使用本机做服务器(目测不可行) 双击项目的Properties-->Publish-->Application Files,你会发现没有.md ...
 
			
		
' (square root). Initially, the number 2 is displayed on the screen. There are n + 1 levels in the game and ZS the Coder start at the level 1.
. After that, ZS the Coder levels up, so his current level becomes k + 1. This button can only be pressed when x is a perfect square, i.e. x = m2 for some positive integer m.
.
.
.
.
.