广工新生赛-以行走般的速度β

以行走般的速度β

  题目描述

今天的理科实验室依旧回响着气泡的大合唱。

梓川咲太一边看应考的题目一边听着声音的变化,同时思索该如何回答考察数学思维的题目......

就算解决了牧之原翔子和樱岛麻衣的问题,也终究要面对现实的考验。

“梓川你不是要和樱岛麻衣前辈考同一个大学吗?”

双叶理央坐在咲太的面前,今天也依然披着白大褂,正在准备不知名的实验。

“是啊。之前不是说过吗?所以我现在忙于备考。”

“我就友善的提醒你一句...”

“什么?”

“你看的是我的算法竞赛书......”双叶理央用略带担忧的声音这么说着。

梓川咲太突然回过神来,他翻了翻书本后面的内容,的确是和程序有关。但是前面的例题部分做的却和普通的参考书别无二致。

双叶拿回了她的算法书,找着梓川刚刚在看的部分。

“给出一个大于等于2的正整数n,对于一对数a和b(2<=|a|,|b|<=n,a!=b),如果存在一个整数x(|x|>=1)使得ax=b(或bx=a),就可以将a转换成b(或将b转换为a),转换后,你可以获得|x|的积分。”

一边说着,双叶就开始在黑板上写一些算式。

“不过,限制条件是,转换完毕后,就不能再使用由a转换成b或b转换成a的转换方式了。“

”一开始拥有的积分是0,现在给一个大于等于2的正数n,可以在2~n都取一次起点进行转换(更换起点时,转换方式不初始化)。请问最多可以获得多少分?”

“双叶老师,我实在是听不懂。”

梓川咲太很爽快的袒露了事实。

比如说n等于4的时候答案是11,因为

取起点为2时,你的最多得分是9。其中的一种得分方式是 2→(-2)→4→2→(-4)→(-2);

取起点为3时,你只能得1分,3→(-3);

取起点为4时,你别的转换方式都使用过,因此只能得1分,4→(-4)。

所以最终答案是9+1+1=11,明白了吗?

黑板上已经密密麻麻写了一堆公式,在右下角又写了一个Accepted。看来双叶理央已经在脑内解决了这个问题。

不过对于咲太来说这依旧是一个难题。虽然不是应考的范围,但既然看了这么久,也就顺便解答出来吧。

输入

多组输入输出。

对于每一组数据,输入一个整数n(2<=n<=100000)

保证n的个数小于200,n的总和不超过5000000

输出

对于每一组样例 ,输出梓川咲太最大能够得到的分数

样例输入

2
4
6

样例输出

1
11
33

做会新生赛的题玩一玩…

明显是找规律,然后和因子有关

对2而言,当出现一个数比如说4

那么他的价值是:

2->4-> -2 -> -4 ->2 当然还有2-> -2 4*2+1;

如果是8

2->8-> -2 -> -8 ->2 4*4+1;

现在换做3,出现6的价值有

2->6-> -2 -> -6 ->2 4*3+1;

规律很明显 就是预处理这个数有多少因子

然后*4,最后加上(n-1)

#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int maxn=100000+10;
ll s[maxn];
ll sum[maxn];
void init(){
    for(register ll i=2;i<maxn;++i){
        for(ll j=2;j*j<=i;++j){
            if(i%j==0){
                s[i]+=4*(i/j);
                if(j*j!=i) s[i]+=4*j;
            }
        }
    }
    for(register ll i=2;i<maxn;++i){
        sum[i]=sum[i-1]+s[i];
    }
}
int main(){
    init();
    int n;
    while (scanf("%d",&n)!=EOF) {
        printf("%lld\n", sum[n]+(n-1));
    }
    return 0;
}

原文地址:https://www.cnblogs.com/smallocean/p/10078258.html

时间: 2024-10-13 08:45:56

广工新生赛-以行走般的速度β的相关文章

2017广工新生赛决赛 B 【模拟】

Problem B: 狗哥的肚子 Time Limit: 1 Sec  Memory Limit: 128 MB Description[http://gdutcode.sinaapp.com/problem.php?cid=1071&pid=1] 在 ACM 集训队中,狗哥的肚子形状多变,令人啧啧称奇,但是大家都有一个疑问,狗哥的肚子在最大的时候,能有多大呢?于是大家通过观察测量,用三种近似形状和相对应的整数数据来描述狗哥的肚子.但是狗哥的肚子实在太多变化的形状了,大家没有办法找出其中最大的值

18广工新生赛

01: #include<bits/stdc++.h> using namespace std; #define Fopen freopen("_in.txt","r",stdin); freopen("_out.txt","w",stdout); #define LL long long #define ULL unsigned LL #define fi first #define se second #def

广工三鲜

最后一天,漫天飘起了雪花,假装欢送我离去.这次WF之战不太顺利,早期的C题大概花了1秒钟构思,然而由于输出格式多了一个空格直到两个半小时才逃脱Wrong Answer的纠缠.还好lynncui在期间独挡一面过掉D.最终成绩不好,然而没有遗憾,从不遗憾.相比之下,来自全球的队伍让我看到了很强大的实力,每一道题都有人过,包括SJTU欺骗性提交的H都被人干掉了.身为地球人我感到自豪.WF之旅很奢华(Sample: 1300一晚的酒店,99一顿的早餐),活动很多,服务很好.但最终念念不舍的是各位一见如故

ZSC新生赛 沼跃鱼早已看穿了一切

Description 沼跃鱼打开密码门后发现门后是一个像迷宫一样的房间,墙上的指示牌写着:房间内某处有一宝箱,但是宝箱被上锁了,钥匙在这个房间的某个角落.沼泽鱼对宝箱里有什么很感兴趣,但它必须先去拿到钥匙才可以打开宝箱.然而沼跃鱼早已看穿了一切,它看清了这个房间的布局,现在给出房间的布局图,问沼跃鱼拿到钥匙并打开宝箱最少需要走多少步.沼跃鱼每次只能向上.下.左.右中其中一个方向走一步,但若那个位置是墙时则不能往那个位置走(显然,沼跃鱼不能穿墙). Input 输入的第一行是一个整数T(0<T<

SCNU 2015ACM新生赛决赛【F. Oyk闯机关】解题报告

题目大意:一个$N$$\times$$N$的阵列,每个格子有$X_{ij}$个调和之音,若每次只能选择走右边或下边,从左上角出发走到右下角,问最多能收集到多少个调和之音? 这题是一道很很很简单的DP题,但可能之前没接触过的同学需要一点脑能量去思考..如果用最蠢的办法,循环枚举每种选择,求出最大值的话,由于你总共需要往右走$N-1$次,往下走$N-1$次,路径总长度为$2N-2$,根据组合数学,总共有$C_{2N-2}^{N-1}$种走法,想想$C_{1998}^{999}$会是一个多么可怕的数字

广工 数据结构 表达式类型求值(上)

一.  需求分析 一个表达式和一棵树之间存在自然的对应关系,实现以下操作: (1)以字符序列的形式输入语法正确的后缀表达式并构造表达式. (2)可实现对应原表达式的加.减.乘.除四则混合运算. (3)运算数可以是整数.实数或变量,若是变量,可对变量赋值,以求得对应原表达式的值. (4)可以求表达式的中缀和后缀序列,还可以求所建立的二叉树的深度. [测试数据] 1)分别输入0:a; -91; 2 4 +; 1.5 a uuu / *; 2  11 + 3 ^并输出. 2)每当输入一个表达式后,对其

广工 数据结构 表达式类型求值(下)

设计和调试分析 1.      在建立二叉树时,要遵循一个原则,那就是运算符做为分支结点,操作数做为叶子结点,利用栈进行操作.当遇到操作数是,无论是变量还是实数或整数,都将入栈.当遇到运算符号时,把栈顶的两个元素弹出来进行运算,然后再把运算结果放入栈中.如果你输入的是正确的后缀表达式,那么,最终要建立的那棵树就是栈中唯一的一个元素.与此同时,也可以用这个结果来作为判断用户输入的表达式是否为正确的后缀表达式,当最后的栈中出现多于一棵二叉树时,说明此表达式不是正确的后缀表达式. 2.      二叉

(最短路)17bupt新生赛——F. ch追妹

F. ch追妹 2017新生赛 时间限制 2000 ms 内存限制 65536 KB 题目描述 n个点的一张无向图,每条边长度为wi,ch站在a点,ch要追的妹子站在b点.ch可以使用一次膜法,将一条边的长度变为0.ch想知道他要追到妹子要走的最短路径. 输入格式 第一行为数据组数T(T≤10).每组数据的第一行为四个数 n,m,a,b(1≤a,b≤n≤10000,1≤m≤50000),分别表示点数,边数,ch的位置,妹子的位置.之后m行,每行为三个数 u,v,w(1≤u,v≤n;1≤w≤100

哈理工新生赛热身赛解题报告

本次热身赛6道题目,由于没有官方解题报告,自己写了一个山寨版的解题报告,希望对学弟学妹有所帮助 期中两到签到题该校OJ上没有挂出,我在田大神的帮助下a掉了其它四题,解题报告如下所示 线段 Time Limit: 1000 MS Memory Limit: 32768 K Total Submit: 10(6 users) Total Accepted: 7(6 users) Rating:  Special Judge: No Description 坐标轴上有一些点,依次给出.点与点之间要求用