链接: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. Python之str型转成int型

    str转int: def fn(x,y): return x*10+y def char2num(s): ':9}[s] # 特别注意这里,后面还有个 [s] ')))) '))) 输出如下: < ...

  2. Java中synchronized 修饰在static方法和非static方法的区别

    [问题描述]关于Java中synchronized 用在实例方法和对象方法上面的区别 [问题分析]大家都知道,在Java中,synchronized 是用来表示同步的,我们可以synchronized ...

  3. CocoaPods CDN: trunk Repo update failed

    问题 今天升级 CocoaPods 到 1.8.4 版本但是随即问题就来了, 执行 pod install 下载库时,出现错误 解决 在 Podfile 加上 source ‘https://gith ...

  4. Primeng UI框架中 分页组件用法

    1.在当前模块或当前页面的对应的module.ts文件中引入相应组件模块,如:core.module.ts模块. import { PaginatorModule } from 'primeng/pr ...

  5. numpy 中的broadcast 机制

    https://www.cnblogs.com/jiaxin359/p/9021726.html

  6. Python3.5-20190513-廖老师-自我笔记-函数式编程

    把复杂的任务拆成各个小的函数,通过函数的调用来完成任务.这就是面向过程编程. 高阶函数:就是让函数的参数能够接收别的函数.把函数作为参数传入到另一个函数. 函数名也是变量.和变量用法一样的,指向一个函 ...

  7. mongodb增删改查基础语法

    转载:https://blog.csdn.net/u012206617/article/details/91047239 1. use DataBaseName 切换/创建数据库use mydb 2. ...

  8. C语言数组,指针小案例

    /* ============================================================================ Name : hello.c Autho ...

  9. Jquery中的offset()和position()深入剖析(元素定位)

    先看看这两个方法的定义. offset(): 获取匹配元素在当前视口的相对偏移. 返回的对象包含两个整形属性:top 和 left.此方法只对可见元素有效. position(): 获取匹配元素相对父 ...

  10. Windows10 通用快捷键命令

    总想着甩掉鼠标,来一种只用键盘的各种行云流水般的快捷操作,在网上各个论坛,博客,搜索引擎,最后终于记录整理了出来! 为了尝试新的命令提示符下,只需     打开开始菜单,然后键入cmd并回车. 按Ct ...