7-21测试

问题 A: 挖掘机技术哪家强

时间限制: 1 Sec  内存限制: 128 MB
提交: 326  解决: 83
[提交][状态][讨论版]

题目描述

有人问现实中为什么总是男生追求女生,反过来很少。实际上女生也是想主动追求男生的,但是世俗中对于主动追求男生的女生有种歧视,这样就使得女生不大敢主动追求男生。但是面对喜欢的男生,难道就不出手么?女生只能步步为营,挖坑来引诱男生往里跳。这时候问题就来了,挖掘机技术到底哪家强?

被热血沸腾的广告洗脑了若干天后,Matt终于下定决心,毅然登上了开往泉城的列车,决心寻找生活的希望。

来到布鲁谢特学院后,Matt逐渐地了解了各种型号的挖掘机。在这里我们可以认为有大挖掘机和小挖掘机两种。

今天Matt的任务很简单:首先他要用大挖掘机挖出恰好N单位体积的砂土。由于小挖掘机比较笨拙,它每次挖的砂土体积是固定的。也就是说,设每次挖x单位体积砂土,那么N需要被x整除。在挖出若干堆体积为x的砂土后,Matt需要计算x的“难挖指数”。体积x的“难挖指数”定义如下:对于某个不超过x的体积y,如果x与y的最大公约数为1,那我们认为体积y是“难挖的”,x的“难挖指数”就要加上y。

由于Matt之后还需要用小挖掘机处理被大挖掘机挖出的砂土,他希望知道所有可能的x的难挖指数的和,这样他好估算今天要干多久,不然作为布鲁谢特的高才生,他出门要被笑话的。

输入

第一行一个整数T,表示数据组数。

接下来T行每行一个整数表示N。

输出

对于每个数据输出一行一个整数表示难挖指数的和。

样例输入

3
2
3
4

样例输出

2
4
6

提示

题目意思:定义两个函数f,g,并求出g(n)的值:

这道题有一个小定理。小于自然数x的所有与x互质的自然数的和为φ(x)*x/2。因为如果a与x互质,x-a必定与x互质。两两配对即可。

所以原题就变为了求所有是n约束的x的x*φ(x)/2之和。

考场时用质因数分解+爆搜实现了一下,因为数据不是特别大水过了。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
int n,m,num[10005],prime[10005],s[10005];
long long tot,tmp,ans;
void calc()
{
    tot=tmp=1;
    for(int i=1;i<=m;i++)
    {
        tot*=s[i];
    }
    if(tot==1) {
        ans+=1;
        return;
    }
    tmp=tot;
    for(int i=1;i<=m;i++)
    if(s[i]!=1) tmp=tmp*(prime[i]-1)/prime[i];
    ans+=tmp*tot/2;
}
void dfs(int x)
{
    if(x>m)
    {
        calc();
        return;
    }
    s[x]=1;dfs(x+1);
    for(int i=1;i<=num[x];i++)
    {
        s[x]*=prime[x];
        dfs(x+1);
    }
    s[x]=1;
}
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        m=ans=0;
        scanf("%d",&n);
        for(int i=2;i<=sqrt(n);i++)
        if(n%i==0)
        {
            prime[++m]=i;
            num[m]=0;
            while(n%i==0)
            {
                num[m]++;
                n/=i;
            }
            if(n==1) break;
        }
        if(n!=1) prime[++m]=n,num[m]=1;
        dfs(1);
        printf("%lld\n",ans);
    }
}
时间: 2024-08-27 15:51:11

7-21测试的相关文章

2018 1.21测试

套路 文件名:road.cpp(pas) 时间限制:1s 空间限制:512MB 题目描述: 给出1个 N 个点的有向图,每个点的出度恰好为一. 现在希望给这 N 条边重定向,求图中不出现环的方案数(对 109 + 7 取模). 输入格式: 第一行一个正整数 N. 第二行 N 个正整数 Xi,表示存在一条有向边 i 指向 Xi. 输出格式: 一行,一个整数 Ans,表示定向后不出现环的方案数. 样例读入: 5 2 3 1 5 4 样例输出: 12 数据范围: 对于 30% 的数据,保证 N 20 

ACM-ICPC实验室20.2.21测试-图论(二)

A.患者的编号 给出一个有向图,要求你输出字典序最小的拓扑排序. 常规拓扑排序是做不了的,正解是反向建图,同时用大根堆的优先队列维护,保证每次优先访问编号大的结点,再反向输出~ #include<bits/stdc++.h> using namespace std; const int maxn=1e6+14; vector<int> g[maxn]; vector<int> topOrder; int inDegree[maxn]; int N,M,x,y; void

Spring 测试

测试是开发工作中必不可缺的部分.单元测试只针对当前开发的类和方法进行测试,可以简单通过模拟依赖来实现,对运行环境没有依赖:但是仅仅进行单元测试是不够的,它只能验证当前类或方法能否正常工作,而我们想要知道系统的各个部分组合一起是否能正常工作,这就是集成测试存在的意义. 集成测试一般需要来自不同层的不同对象的交互,如数据库.网络连接.Ioc容器等.其实我们也经常通过运行程序,然后通过自己操作来完成类似于集成测试的流程.集成测试为我们提供了一种无须部署或运行程序来完成验证系统各部分是否能正常协作工作的

SpringMVC测试

这篇是接着上篇Spring单元测试写的. 一.修改web.xml,配置SpringMVC的前端控制器 1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xmlns="http://java.sun.com/xml/ns/javaee" 4 xsi

网站安全狗最新版绕过测试

测试时间:2014.10.21 测试版本:IIS版V3.3.09476(2014-09-24).Apache V3.1.08512(2014-05-29),均为今天能下到的最新版. 用于绕过的核心字符:%0A,某些特殊场合需要和注释符配合使用. 测试详细步骤: 1.本机安装了存在注入的V5shop(构架为IIS6+ASPX+MSSQL2005,以测试IIS版本的安全狗),常规注入测试: Default http://192.168.91.152/cart.aspx?act=buy&id=1 AN

针对B/S、C/S架构的180个简单测试案例(转)

这是一个针对web应用和桌面应用程序的测试清单. 注释:这篇文章有点长,我的目标是能够分享其中一个已经启动但还没完成的综合测试清单.我将利用很多场景持续更新该清单.如果你现在没有时间阅读,请随意的将它与你的朋友共享并放在书签中供以后阅读. 测试清单是测试用例编写过程中不可或缺的一部分.使用该清单你可以轻松地创建数以百计的测试用例来测试web或桌面应用程序.这些都是常用的测试用例,基本上适用于所有的应用程序.在为你的项目编写测试用例时参考该清单,我相信除了软件需求说明文档中的特定业务规则外,你能覆

SVG_text.一般属性测试

1.测试代码 <?xml version="1.0" encoding="UTF-8"?> <svg width="1000" height="800" viewBox="-500 -200 1000 800" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlin

精准测试白皮书-2019最新版

精准测试白皮书 精准测试诞生的背景 现代社会是建立在各种以计算机为基石的软件技术基础之上的.随着日新月异的需求变化,软件系统越来越复杂.很多人觉得软件开发才是重要环节,但实际上,无法对大型软件进行有效的质量把控,就无法真正构建与维护大型软件.--系统中任何一个错误都可能导致整个系统的崩溃,造成无法弥补的损失,系统的任何一个微小的修改都可能引入新的缺陷导致维护困难重重. 然而,如何从极端庞大复杂的系统中迅速及时地找到故障所在,却是行业的一大难点.目前国内软件测试基本处于两种状态:一是绝大多数企业采

python_day5

python协程函数.递归.匿名函数与内置函数使用.模块与包 目录: 协程函数(yield生成器用法二) 面向过程编程 递归 匿名函数与内置函数的使用 模块 包 常用标准模块之re(正则表达式) 一.协程函数(yield生成器用法二) 1.生成器的语句形式 a.生成器相关python函数.装饰器.迭代器.生成器,我们是如何使用生成器的.一个生成器能暂停执行并返回一个中间的结果这就是 yield 语句的功能 : 返回一个中间值给调用者并暂停执行. 我们的调用方式为yeild 1的方式,此方式又称为

5 行为型模式之- 责任链模式

责任链模式介绍: 责任链模式是行为模式之一,什么是"链"?我们将多个节点首尾相连,就形成了链,对于链式结构,每个节点都可以拆开再重新连接,因此链式结构也具有很好的灵活性.将这样一种结构应用于编程领域,将每一个节点看作是一个对象,每一个对象拥有不同的处理逻辑,将一个请求从一个链的首端发出,沿着链的路径依次传递给每一个节点对象,直至有对象处理这个请求为止,我们将这样的一种模式称为责任链模式. 责任链模式的定义: 使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系,将这