CodeFroces Gym 100860A AutoCoder
来源:互联网 发布:阿里云 系统镜像 上传 编辑:程序博客网 时间:2024/06/06 01:55
这题只需要找一找规律即可得出答案。
我们知道奇数位置肯定是一个等差数列求和。单独看偶数位置,会发现其中又蕴含了一个等差数列,把它求出来,再看剩下的,发现里面依然有一个等差数列。这样不断循环求出答案即可。
代码如下:
#include<iostream>#include<cstdio>#include<vector>#include<queue>#include<utility>#include<stack>#include<algorithm>#include<cstring>#include<string>#include<cmath>using namespace std;long long cal(long long tmp) {return tmp + tmp * (tmp - 1) / 2;}int main() {#ifndef ONLINE_JUDGE//freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout);#endiflong long n, sum = 0, tmp;cin >> n;n--;if(n <= 0) {sum = 0;} else if(n % 2 == 0) {n++;tmp = n / 2 + 1;sum += cal(tmp);sum -= tmp;//tmp = n / 2 + 1;//sum += cal(tmp);n--;while(n >= 2) {if(n % 4 == 0) {tmp = n / 4;sum += cal(tmp);n -= 2;n = (n - 2) / 2;} else {sum -= (n + 2) / 4;n += 2;}}} else if(n % 2 == 1) {tmp = n / 2 + 1;sum += cal(tmp);n--;while(n >= 2) {if(n % 4 == 0) {tmp = n / 4;sum += cal(tmp);n -= 2;n = (n - 2) / 2;} else {sum -= (n + 2) / 4;n += 2;}}}cout << sum << '\n';return 0;}
阅读全文
0 0
- CodeFroces Gym 100860A AutoCoder
- CodeFroces gym 100781 A.Adjoin the Networks(贪心)
- codefroces A. Cut Ribbon
- Codefroces 383 A Milking cows
- CodeFroces 804A Find Amir
- CodeFroces 805A Fake NP
- CodeFroces 787A The Monster
- CodeFroces 827A.String Reconstruction
- CodeFroces 810A Straight «A»
- Codefroces 223A - Bracket Sequence【栈优化】
- Codefroces 280 div2 A. Vanya and Cubes
- codefroces#337 A Pasha and Stick【思维】
- codefroces#337 A Pasha and Stick【思维】
- CodeFroces 766B Mahmoud and a Triangle
- Codefroces 410 A. Mike and palindrome
- CodeFroces 812A Sagheer and Crossroads
- CodeFroces Round 423 A. Restaurant Tables
- CodeFroces 831A. Unimodal Array(构造题)
- Spring的AOP开发实战和疑问解析
- 代码智能感知——Visual Assist X
- pylogin系列之畅言登录评论接口分析
- Android零基础入门第37节:初识ListView
- java.io理解(一)
- CodeFroces Gym 100860A AutoCoder
- Java8里面的日期操作整理
- 简易聊天对话框
- 自己测试,在yii2中实现PHPExcel数据导出实例
- Ubuntu系统使用RAR格式文件命令
- Linux下加载.ko驱动模块的两种方法:insmod与modprobe
- 第六篇:Java语法糖
- Redis系列—Redis事件订阅
- EF AF BE