题目链接:http://lightoj.com/volume_showproblem.php?problem=1298

题意:给你两个数 n, p,表示一个数是由前 k 个素数组成的,共有 n 个素数,然后求这样的所有的数的欧拉和;

例如 n = 3, p=2; 前两个素数是2,3, 然后因为n=3,所以要再选一个素数组成一个数,有两种选择2*3*2=12 和 2*3*3=18 结果就是Φ(12)+Φ(18) = 10;

我们可以用dp[i][j] 表示前 j 个素数中选择 i 个的结果,Φ[n] = n*(p[i]-1)/p[i] * (p[i+1]-1)/p[i+1] * ... ;

那么对于p[j]是第一次选择的话,那么dp[i][j] += dp[i-1][j-1]*(p[j]-1),因为相当于是第i个素数是p[j],而且p[j]是第一次被选择,所以要*(p[j]-1)

当p[j]不是第一次被选择时,dp[i][j] += dp[i-1][j]*p[j],因为p[j]已经出现过一次了

要先打表再求,不然会TLE;

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <algorithm>
#include <bitset>
#include <iostream>
#include <time.h> typedef long long LL; using namespace std; const int N = ;
const double eps = 1e-;
const int INF = 0x3f3f3f3f;
const int mod = ; int k = , p[];
bool f[N]; void Init()
{
for(int i=; i<N; i++)
{
if(f[i])continue;
p[k++] = i;
for(int j=i+i; j<N; j+=i)
f[j] = ;
}
///printf("%d\n", k);
}
LL dp[][]; void Dp()
{
dp[][] = ; for(int i=; i<=; i++)
{
for(int j=; j<=i; j++)
{
dp[i][j] += dp[i-][j-]*(p[j]-);
if(i>j)///只有当 i > j 时才能选p[j]大于二次;
dp[i][j] += dp[i-][j]*p[j];
dp[i][j] %= mod;
}
}
} int main()
{
Init(); Dp(); int T, t = ; scanf("%d", &T); while(T --)
{
int n, K; scanf("%d %d", &n, &K); printf("Case %d: %lld\n", t++, dp[n][K]);
}
return ;
}

LightOj 1298 - One Theorem, One Year(DP + 欧拉)的更多相关文章

  1. LightOJ1298 One Theorem, One Year(DP + 欧拉函数性质)

    题目 Source http://www.lightoj.com/volume_showproblem.php?problem=1298 Description A number is Almost- ...

  2. poj-2478 Farey Sequence(dp,欧拉函数)

    题目链接: Farey Sequence Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 14230   Accepted:  ...

  3. LightOJ 1375 - LCM Extreme 莫比乌斯反演或欧拉扩展

    题意:给出n [1,3*1e6] 求 并模2^64. 思路:先手写出算式 观察发现可以化成 那么关键在于如何求得i为1~n的lcm(i,n)之和.可以知道lcm(a,b)为ab/gcd(a,b) 变换 ...

  4. 1298 - One Theorem, One Year

    1298 - One Theorem, One Year   PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: ...

  5. lightoj 1370 欧拉函数

    A - Bi-shoe and Phi-shoe Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & % ...

  6. LightOJ 1370 - Bi-shoe and Phi-shoe (欧拉函数思想)

    http://lightoj.com/volume_showproblem.php?problem=1370 Bi-shoe and Phi-shoe Time Limit:2000MS     Me ...

  7. 【省选十连测之九】【DP】【组合计数去重】【欧拉函数】基本题

    目录 题意: 输入格式: 输出格式: 数据范围: 思路: 嵌套题的转移 基本题的转移 Part1 Part2 Part3 代码 题意: 这是一个关于括号组合的题. 首先定义一道题是由'(',')',' ...

  8. 【hihocoder 1298】 数论五·欧拉函数

    [题目链接]:http://hihocoder.com/problemset/problem/1298 [题意] [题解] 用欧拉筛法; 能够同时求出1..MAX当中的所有质数和所有数的欧拉函数的值; ...

  9. 2018 南京预选赛 J Sum ( 欧拉素数筛 、Square-free Number、DP )

    题目链接 题意 : 定义不能被平方数整除的数为 Square-free Number 定义 F(i) = 有几对不同的 a 和 b 使得 i = a * b 且 a .b 都是 Square-free ...

随机推荐

  1. 【xcode5的使用】

    layout: post title: "WWDC 2013 Session笔记 - Xcode5和ObjC新特性" date: 2013-06-13 10:05 comments ...

  2. rhel5.8安装oracle 10g ASM

    1.所有的配置和文件系统一样 2.规划: 加了8块小盘,ASM为了实验使用asmlib驱动(rhel6不再支持asmlib驱动),裸设备的2种方法(rowdevice和udev) 三块盘使用asmli ...

  3. Smooth Mouse

    一款免费软件,使mac可以做到和 Windows 下的鼠标加速度的相同算法,实现同样 win 的鼠标操控感,也可以实现鼠标0加速度.

  4. Android ImageView的scaleType属性与adjustViewBounds属性(转)

    ImageView的scaleType的属性有好几种,分别是matrix(默认).center.centerCrop.centerInside.fitCenter.fitEnd.fitStart.fi ...

  5. CSS3混合模式mix-blend-mode/background-blend-mode简介 ,PS中叠加效果

    一.CSS3 mix-blend-mode 首先,要知道”blend-mode”就是混合模式的意思.那mix, 恩,我也不知道为什么命名为mix, 可能是该属性不仅可以作用于HTML,还可以作用于SV ...

  6. 08 Servlet

    Servlet技术          * Servlet开发动态的Web资源的技术.                       * Servlet技术               * 在javax. ...

  7. tangram2.6(XE2)\Demo\notify\notifyGroup.groupproj

    1.以下此异常,为exe没有加载到Tangram_Core.bpl 放到exe当前文件夹下即可 2.此例子的接口实现在exe中,exe中下发通知到dll,dll 中 as 获取接口传窗体到exe中: ...

  8. 分布式缓存技术memcached学习(三)——memcached内存管理机制

    几个重要概念 Slab memcached通过slab机制进行内存的分配和回收,slab是一个内存块,它是memcached一次申请内存的最小单位,.在启动memcached的时候一般会使用参数-m指 ...

  9. 云虚拟主机开源 DedeCMS 安装指南

    1. 获取主机 FTP 和 数据库 信息 1.1 FTP 信息 登录主机管理后台,在 站点信息 中获取到 FTP 和 数据库 的账号密码,连接地址. 如下图所示: 如果忘记密码,可以在这里进行 重置密 ...

  10. 【TYVJ1864】[Poetize I]守卫者的挑战 概率与期望

    [TYVJ1864][Poetize I]守卫者的挑战 描述 打开了黑魔法师Vani的大门,队员们在迷宫般的路上漫无目的地搜寻着关押applepi的监狱的所在地.突然,眼前一道亮光闪过."我 ...