当前位置: 首页 > news >正文

HDU The Boss on Mars(容斥原理)

题目大意:

ACM 有 n 名员工,现在是他们从老板那里拿薪水的时候了。所有员工都从 1 到 n 编号。原因不明,如果员工的工作编号是 k,他今年可以获得 k^4 Mars 美元。所以为 ACM 工作的员工非常富有。

因为员工人数太多,ACM 的老板必须分配太多的钱,他想明年解雇工作号与 n 共质的人。现在老板想知道解雇后他会节省多少钱。

思路:先求出1~n的每个数的四次方的求和,然后再减去n的因子的四次方的求和。把n的因子的质因子找出来,然后使用容斥原理(我容斥原理用的方法是二进制)去做。

求和公式:1^{4}+2^{4}+3^{4}+...+n^{4}=\frac{n*(n+1)*(2n+1)*(3*n*n+3*n-1)}{30} ( 搜来的 )

代码如下:

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int mod=1e9+7;
int vis[10005],prime[10005];
int ksm(int x,int y){int ans=1;while(y){if(y&1) ans=ans*x%mod;x=x*x%mod;y>>=1;}return ans;
}
int fun(int x){//求 a ^ 4 的前 x 项和return (x*(x+1)%mod*(2*x+1)%mod*(3*x*x%mod+3*x%mod-1+mod)%mod)%mod*ksm(30,mod-2)%mod;
}
signed main(){int cnt=0;for(int i=2;i<=10000;i++){//埃式筛求 1 ~ 10000 之间的素数 if(vis[i]) continue;prime[cnt++]=i;for(int j=i*2;j<=10000;j+=i){vis[j]=1;}}int _;cin >> _;while(_--){int n;cin >> n;vector<int> v;//存质因数 int m=n;for(int i=0;i<cnt;i++){//挑选 n 的质因子 if(m%prime[i]==0){v.push_back(prime[i]);while(m%prime[i]==0) m/=prime[i];}}if(m>1) v.push_back(m);//若不为 1 ,说明还留下 1 个质因子 int ans=fun(n),res=0;for(int i=1;i<(1<<v.size());i++){int num=1,sum=0;//num 代表几种不同质因子组成的最小因子 ,sum 代表质因子的个数 for(int j=0;j<v.size();j++){ if((i>>j)&1) sum++,num*=v[j];}int tmp=num*num%mod*num%mod*num%mod*fun(n/num);//求出 num 的倍数(不大于 n ) 的四次方之和。将这个最小因子的四次方之和提出,剩下的就是 a^4 的前几项和//例如:2^4 + 4^4 + 6^4 + 8^4 = 2^4 * ( 1^4 + 2^4 + 3^4 + 4^4 )if(sum%2) res=(res+tmp)%mod;//容斥原理 else res=(res-tmp)%mod;}ans=((ans-res)%mod+mod)%mod;cout << ans << endl;}return 0;
}

http://www.lryc.cn/news/466543.html

相关文章:

  • nnUnet 大模型学习笔记(续):训练网络(3d_fullres)以及数据集标签的处理
  • Java中的数据结构与集合源码
  • Java应用程序的测试覆盖率之设计与实现(三)-- jacoco cli 客户端
  • Deepin V23 / 统信UOS 下安装与配置 tftp
  • java基础学习:定时任务常见实现方式
  • 句柄是什么?有什么用?举例说明
  • Jenkins学习笔记
  • AI 解读软考高级操作系统顺序存取、直接存取、随机存取、相联存取的区别
  • STM32烧写准备
  • 为Windows Terminal 配置zsh + Oh-My-Zsh!
  • RNN、LSTM 与 Bi-LSTM
  • 第一性原理
  • DOM NamedNodeMap 接口详解
  • EasyExcel自定义下拉注解的三种实现方式
  • Burp Suite Professional 2024.9 for macOS x64 ARM64 - 领先的 Web 渗透测试软件
  • 使用Mock库进行依赖注入的实用指南
  • nosql课本习题
  • springboot 3.2.5集成spring security 只放行get请求,其他请求403
  • 【linux】麒麟v10安装ELKB(ARM架构)
  • 帝国CMS – AutoTitlePic 自动生成文章标题图片插件
  • Docker安装Mysql5.7,解决无法访问DockerHub问题
  • React中使用Antd开源组件Popover等部分组件原生样式改变问题
  • Linux 配置 ssh —— ubuntu
  • eCAP超声波测距-ePWM电机调速
  • 【K8s】Kubernetes 词汇表
  • 高级java每日一道面试题-2024年10月20日-数据库篇[Redis篇]-Redis为什么是单线程的?
  • SW-LIMS在化妆品行业稳定性试验中的应用
  • vue 项目i18n国际化,快速抽离中文,快速翻译
  • java--多态(详解)
  • windows DLL技术-DLL概述