链接:https://ac.nowcoder.com/acm/contest/1114/B
来源:牛客

时间限制:C/C++ 2秒,其他语言4秒
空间限制:C/C++ 524288K,其他语言1048576K
64bit IO Format: %lld

题目描述

 由于n越大jelly越美味,这里n<=3000000,只需求这个式子对1e9+7取模的值。

输入描述:

第一行输入一个整数 n。 1<=n<=3000000。

输出描述:

输出一个整数表示答案。
示例1

输入

复制

3

输出

复制

22

思路:
这道题主要是开始对这个式子的转化过程,这是比较难想的,可能我们就会直接用这个公式去做,这样就会很难做
转化过程:

转化为

 
原因:为什么想到去转化,如果不转化的话,那么i/j中j作为分母,并且还有j次幂,而j又在内循环里面,所以很不方便写程序,最理想的是j是外循环里的变量,
接下来,我们来分析为什么是这样转化
对于i=1i=1,有j=1j=1
对于i=2i=2,有  j=1,2
。。。
对于i=ni=n,有  j = 1,2,...,n
我们发现i都是大于等于j的,于是就可以得到这个转化的式子
代码:
#include<iostream>
#include<stdio.h>
using namespace std;
typedef long long ll;
const int maxn = 3e6+;
const ll mod = 1e9+;
ll a[maxn];
ll div2 = 5e8+;//2对于1e9+7的逆元
void init1(int k){
for(int i=;i<=k;i++)
a[i] = ;
} void init2(int k){
for(int i=;i<=k;i++){
a[i] = (a[i]*i)%mod;
}
} ll f(ll n){
ll sum = ;
init1(n);
for(ll j = ; j<=n;j++){
init2(n/j);
for(ll k = ;k<=n/j;k++){
ll mm = min(n,(k+)*j-);
sum = (sum+((((mm-k*j++mod)%mod)*(k*j+mm)%mod)*div2%mod)*a[k]%mod)%mod; }
}
return sum%mod;
}
int main(){
int n;
cin>>n;
cout<<f(n)<<endl;
return ;
}

牛客练习赛53 B 美味果冻的更多相关文章

  1. 牛客练习赛53 D 德育分博弈政治课 (思维建图,最大流)

    牛客练习赛53 D德育分博弈政治课 链接:https://ac.nowcoder.com/acm/contest/1114/D来源:牛客网 题目描述 德育分学长最近玩起了骰子.他玩的骰子不同,他的骰子 ...

  2. 牛客练习赛53 A 超越学姐爱字符串 (DP)

    牛客练习赛53 超越学姐爱字符串 链接:https://ac.nowcoder.com/acm/contest/1114/A来源:牛客网 超越学姐非常喜欢自己的名字,以至于英文字母她只喜欢" ...

  3. 牛客练习赛53 A-E

    牛客联系赛53 A-E 题目链接:Link A 超越学姐爱字符串 题意: 长度为N的字符串,只能有C,Y字符,且字符串中不能连续出现 C. 思路: 其实就是DP,\(Dp[i][c]\) 表示长度为 ...

  4. 【牛客练习赛53】A-超越学姐爱字符串

    // 题目地址:https://ac.nowcoder.com/acm/contest/1114/A /* 找规律(碰运气) n:1 = 2 n:2 = 3 n:3 = 5 n:4 = 8 ... d ...

  5. 牛客练习赛53 E 老瞎眼 pk 小鲜肉 (线段树,思维)

    链接:https://ac.nowcoder.com/acm/contest/1114/E来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 524288K,其他语言1048 ...

  6. 牛客练习赛53 E-老瞎眼pk小鲜肉(思维+线段树+离线)

    前言 听说是线段树离线查询?? 做题做着做着慢慢对离线操作有点感觉了,不过也还没参透,等再做些题目再来讨论离线.在线操作. 这题赛后看代码发现有人用的树状数组,$tql$.当然能用树状数组写的线段树也 ...

  7. 牛客练习赛53 (C 富豪凯匹配串) bitset

    没想到直接拿 bitset 能过 $10^8$~ code: #include <bits/stdc++.h> #define N 1004 #define setIO(s) freope ...

  8. 牛客练习赛53 (E 老瞎眼 pk 小鲜肉) 线段树+离线

    考试的时候切的,类似HH的项链~ code: #include <bits/stdc++.h> #define ll long long #define M 500003 #define ...

  9. 牛客练习赛53 C 富豪凯匹配串

    思路: bitset的简单题,不幸的是当时的我并不知道bitset, C++的 bitset 在 bitset 头文件中,它是一种类似数组的结构,它的每一个元素只能是0或1,每个元素仅用1bit空间, ...

随机推荐

  1. 怎么追加byte内容

    public byte[] InsertByte(string dx) { List<byte> temp = new List<byte>(); byte[] b= Enco ...

  2. javaScript Queue

    function Queue() { var items = []; this.enqueue = function(element) { items.push(element) } this.deq ...

  3. ID和Phone高压缩比存储和查询

    ID和Phone高压缩比存储和查询的简单例子, 无多线程处理 运行环境JDK8+maven 0. 模块分割 1. 基本思路 源文件BCP每一行都转为一个全局的RowID,可以直接映射到FileName ...

  4. LeetCode Array Easy 414. Third Maximum Number

    Description Given a non-empty array of integers, return the third maximum number in this array. If i ...

  5. python 多进程队列数据处理

    # -*- coding:utf8 -*- import paho.mqtt.client as mqtt from multiprocessing import Process, Queue imp ...

  6. python convert csv to xlsx

    搬运:http://stackoverflow.com/questions/17684610/python-convert-csv-to-xlsx import os import glob impo ...

  7. Session的load和get方法区别是什么?

    ①如果没有找到符合条件的记录,get方法返回null值,而load方法会抛出异常: ②get方法直接返回实体类对象,load方法返回实体类对象的代理: ③在Hibernate3之前,get方法只在一级 ...

  8. Bootstrap 警告框

    <div class="panel panel-primary"> <div class="panel-heading"> <h3 ...

  9. sql对表的操作

    --insert into pppcopy select * from ppp //从表ppp中获取数据,并将其插入到pppcopy中,只拷贝表的数据,不拷贝表的结构(前提:表pppcopy1存在) ...

  10. jquery 给a标签绑定click

    一. <div id="main"> <div class="tab-content"> <div class="con ...