zoukankan      html  css  js  c++  java
  • #422(div2)D. My pretty girl Noora

    题意:N个人比赛,将N个人平均分为N/X组,每组对f[N]的贡献是x*(x-1)/2;N/X个晋级,然后继续操作,贡献为f[N/X].t^0*f[l]+t^1*f[l+1]......+t^(r-l)*f[r]最小

    思路:我们改变X使其f[i]发生改变,当i为质数只能为1组,即贡献为i*(i-1)/2。那么合数的贡献最小为什么,易发现当每组为他的最小质因子时,最优,记得开long long ,还有看见t^0,t^1,下意识就用了快速幂,T到死,还百度快速求素数,然而我SB了

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 const ll mod=1e9+7;
     5 const int N=5*1e6+10;
     6 
     7 ll a[N];
     8 ll b[N];
     9 
    10 
    11 int main(){
    12     ll t,l,r;
    13     cin>>t>>l>>r;
    14     for(ll i=2;i<=r+1;i++){
    15         if(b[i]) {continue;}
    16         for(ll j=i*i;j<=r+1;j+=i){
    17             if(b[j]==0)
    18              b[j]=i;
    19         }
    20     }
    21     a[2]=1;a[3]=3;
    22     for(ll i=4;i<=r;i++){
    23         if(b[i]){
    24             ll x=b[i];
    25             a[i]=(a[x]*(i/x)+a[i/x]+mod)%mod;
    26         }
    27         else a[i]=(i*(i-1)/2+mod)%mod;
    28     }
    29     ll xx=1;
    30     ll sum=0;
    31     for(ll i=l;i<=r;i++){
    32         sum=(sum+xx*a[i]+mod)%mod;
    33         xx=(xx*t+mod)%mod;
    34     }
    35     cout<<sum<<endl;
    36 }
  • 相关阅读:
    Swagger配置和使用
    请求SpringMVC接口如何传参数
    ssm搭建配置文件
    永久关闭windows10更新
    VSCode搭建java开发环境
    idea全局设置
    mybatis-plus查询指定字段
    mybayis-plus条件构造器
    Java日期时间操作的一些方法
    C#编写聊天软件客户端
  • 原文地址:https://www.cnblogs.com/hhxj/p/7116582.html
Copyright © 2011-2022 走看看