刷题记录(NC20313 [SDOI2008]仪仗队)

news2024/11/30 12:49:51

NC20313 [SDOI2008]仪仗队

题目链接

关键点:

1、首先分析题目,对于只能看到的点,设原点坐标为(0,0),则除去横纵坐标上能看到的两点(0, 1)、(1, 0),和对角线上的(1, 1),我们能看到的点为(2,3)、(3,5)等等等,对于(10,15)该点必定被(2,3)给挡住。可以发现,对于能看到的点肯定为横纵坐标互质的。

2、这时再来看一半的矩形,即右下角的矩形三角形。其横坐标必定是大于纵坐标的,且对于x = n,其能看到的点必定为与其互质的数,即φ(n),那么该题就转换成从求欧拉函数的和。

3、对于质数其φ(n) = n-1,然后利用欧拉函数性质

当a,b互质时,φ(ab) = φ(a)φ(b)

就可以利用素数筛法来算欧拉函数值了

4、每次筛素数时,对于当前遍历到的素数与当前数的最小素数值相同时,那么说明该两数不互质,就要利用欧拉函数的定理来计算:

 那么可以发现,该两数的质因子均相同,那么就只有前面的N不同, 则两数相乘的欧拉函数就相差乘一个当前遍历的素数

可以这样假设,当前遍历的素数为x,当前数的最小素数为x,当前数为x*a,则两数就相差乘上一个x,

因此:

if (prime[j] == vis[i])
pi[vis[i]*i] = pi[i]*vis[i];

对于当前遍历的素数和当前数的最小素数没有任何关系的:

pi[i*prime[j]] = pi[prime[j]]*pi[i];

最后将答案乘以2+3

完整代码:

# include <bits/stdc++.h>
using namespace std;
const int N = 40010;
int n, cnt;
int prime[N], vis[N], pi[N];
long long ans;
int main()
{
    cin>>n;
    n--;
    for (int i=2; i<=n; i++)
    {
        if (!vis[i])
        {
            vis[i] = i;
            prime[++cnt] = i;
            pi[i] = i-1;
        }
        for (int j=1; j<=cnt; j++)
        {
            if (prime[j]>vis[i]) break;
            if (i*prime[j]>n) break;
            vis[prime[j]*i] = prime[j];
            if (prime[j] == vis[i])
                pi[vis[i]*i] = pi[i]*vis[i];
            else
                pi[i*prime[j]] = pi[prime[j]]*pi[i];
        }
        ans+=pi[i];
    }
    ans*=2;
    ans+=3;
    cout<<ans;
    
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/3041.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis相关知识

目录 一&#xff0c;Redis的命令操作 1.Redis简介 2.Redis安装&#xff08;按步骤执行以下步骤即可&#xff09; 3.redis命令 二&#xff0c;java代码操作Redis 1.java连接Redis 2.java操作Redis 三&#xff0c;Spring注解式缓存Redis 1.Spring整合Redis 2.redis注解式缓…

2023年,前端开发未来可期

☆ 对于很多质疑&#xff0c;很多不解&#xff0c;本文将从 △ 目前企业内前端开发职业的占比&#xff1b; △ 目前业内开发语言的受欢迎程度&#xff1b; △ 近期社区问答活跃度&#xff1b; 等维度来说明目前前端这个职业的所处位置。 ☆ 还有强硬的干货&#xff0c;通过深入…

Flask快速白嫖

一、快速搭建 有前面Flask的学习&#xff0c;相信大家对flask已经有一个不错的了解&#xff0c;今天教大家如何快速搭建一个web网页&#xff01;&#xff01;&#xff01;. 博主不是专门做软件的&#xff0c;但是需求里又有网站的需要&#xff0c;所以怎么办呢&#xff1f; 那…

python动态规划算法实例详解

文章目录python动态规划算法实例详解一、什么是动态规划&#xff1f;二、新视角&#xff1a;从斐波那契数列看动态规划三、实例扩展&#xff08;爬楼梯&#xff09;1. 题目描述2. 示例示例1示例23. 解析4. 代码实现四、结语&#x1f496;&#x1f496;&#x1f496;&#x1f49…

特性Attribute

浅浅了解一下&#xff0c;可影响程序集的运行 [Obsolete]:生成表提示&#xff0c;有true报错提示&#xff0c;无true是提醒提示 是什么&#xff1a;特性就是一个类(可是自定义类)&#xff0c;这个类直接/间接继承自Attribute类&#xff0c;一般类名以Attribute结尾&#xff0c…

ReentrantLock与ReentrantReadWirteLock 原理

ReentrantLock原理&#xff08;**&#xff09; 讲解除了FairLock部分是FairLock流程&#xff0c;其余均NonFairLock源码 &#xff08;FairLock部分会讲解两者不同&#xff09; 1. NonFairLock实现原理 加锁解锁流程 先从构造器开始看&#xff0c;默认为非公平锁实现 public …

Commvault+XSKY 推出基于 Object Lock 的防勒索病毒联合方案

从桶粒度到对象粒度随着对象存储的普及&#xff0c;对象存储已经成为最流行的备份目的&#xff08;backup target) 存储。XSKY星辰天合作为国内领先的对象存储厂商&#xff0c;Commvault 作为全球领先的数据保护厂商&#xff0c;双方一直有紧密的合作。特别在 2020 年&#xff…

装了我这 10 个 IDEA 神级插件后,同事也开始情不自禁的嘚瑟了

CSDN 的小伙伴&#xff0c;大家好&#xff0c;我是二哥呀。 昨天&#xff0c;有读者私信发我一篇 CSDN 上的文章&#xff08;就是这篇&#x1f602;&#xff09;&#xff0c;说里面提到的 Intellij IDEA 插件真心不错&#xff0c;基本上可以一站式开发了&#xff0c;希望能分享…

【学习笔记】《Python深度学习》第一章:什么是深度学习

文章目录1 人工智能、机器学习与深度学习1.1 人工智能1.2 机器学习1.3 从数据中学习表示1.4 深度学习之“深度”1.5 用三张图理解深度学习的工作原理2 机器学习简史2.1 概率建模2.2 早期神经网络2.3 核方法2.4 决策树、随机森林与梯度提升机2.5 回到神经网络2.6 深度学习的不同…

清华学姐三年的测试成长经历,到最后的喜提高薪offer

上个礼拜刚好转正了&#xff0c;三个月试用期&#xff0c;五月份换的工作。 现在这份工作&#xff0c;相比上一份确实好很多&#xff0c;比如工资直接涨了一倍&#xff0c;7到14&#xff0c;13薪&#xff0c;朝九晚六&#xff0c;从不加班&#xff0c;项目也简单&#xff0c;包…

计算机毕业设计(附源码)python疫情下校园食品安全信息管理

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;我…

stm32毕业设计 单片机MP3音乐播放器

文章目录1 简介2 绪论2.1 课题背景与目的3 系统设计3.1 系统架构3.2 软件部分设计3.3 实现效果3.4 部分相关代码1 简介 &#x1f525; Hi&#xff0c;大家好&#xff0c;这里是丹成学长的毕设系列文章&#xff01; &#x1f525; 对毕设有任何疑问都可以问学长哦! 这两年开始…

【网络原理】UDP和TCP协议重点知识汇总

目录 1.UDP协议&#xff1a; 2.TCP协议&#xff1a; 1.UDP协议&#xff1a; UDP协议的特点&#xff1a;无连接、不可靠传输、面向数据报和全双工。UDP报文最大长度是2个字节&#xff0c;2个字节表示的范围就是0~65535&#xff0c;也就是64kb。所以如果需要使用UDP传输一个比…

Qt 自定义控件

学过的东西很久不用都已经忘记了&#xff0c;即使是很简单的事情 1、添加一个Qt 设计师界面类 如何将这个放到比较好看并且是居中的呢&#xff1f; 布局--》水平-》竖直 点击大的widget 不是这两个控件 2、在主窗口中添加一个widget 来加载上面我们已经拿到组合控件 3、将这个…

HTML入门零基础教程(三)

嗨&#xff0c;大家好&#xff0c;我是异星球的小怪同志 一个想法有点乱七八糟的小怪 如果觉得对你有帮助&#xff0c;请支持一波。 希望未来可以一起学习交流。 目录 一、 VSCode工具生成骨架标签新增代码 1.文档类型声明标签 2.lang语言种类 3.charset字符集 二、HT…

从刘老师的进化的力量到有感,疫情阶段如何弯道超车

听了刘老师的内容&#xff0c;了解了一个公式&#xff1a;方向趋势不确定周期&#xff0c;那么JVS更能成为企业这几年实现弯道超车的助理。 方向事关企业生死&#xff0c;在方向上宁愿多花些时间&#xff0c;也不能犯错。不确定刺激企业短时间的痛&#xff0c;企业是需要化解短…

[Spring MVC 4] MyBatis 分页开发

在做Web开发的时候&#xff0c;需要对查询结果进行分页查询&#xff0c;初学者会使用原生的sql查询方式&#xff0c;例如limit关键字&#xff0c;不过这种属于对数据库物理分页了&#xff0c;然而会造成数据库本身的压力&#xff0c;所以分页管理就诞生了。一般在Mybatis中使用…

校园二手交易系统,二手交易网站,闲置物品交易系统毕业设计作品

项目背景和意义 目的&#xff1a;本课题主要目标是设计并能够实现一个基于web网页的二手交易网站系统&#xff0c;整个网站项目使用了B/S架构&#xff0c;基于java的springboot框架下开发&#xff1b;用户通过登录网站&#xff0c;查询二手交易商品&#xff0c;购买二手交易网站…

对于volatile的看法

volatile原意是易变的&#xff0c;编译器对volatile修饰的变量&#xff0c;当要读取这个变量时&#xff0c;任何情况下都会从内存中读取&#xff0c;而不会从寄存器缓存中读取。 编译器不会对volatile修饰的变量进行任何优化 1&#xff09;非volatile变量 在这个用例中&#…

codery-why蘑菇街商城项目梳理笔记

supermallagain-学习记录 项目目录搭建 安装vue以及整理目录 样式初始化 引入assets/css/normalize.css文件 在实际开发中&#xff0c;经常会将浏览器默认的样式进行重置 *{margin:0;padding:0;border:0;}但是*是通配符&#xff0c;需要把所有的标签都遍历一遍&#xff0c;…