第一眼就想到DP,然后想了N久就想不到可以不重算的DP  最后没办法了 先算出来 再去重。。

因为最多只有三个 对于三个来说有三种组合情况 x+y+z, x*y*z, x*y+z 那要么 x,y,z都不同 要么 有两个相同 要么有三个相同 对都不同情况我的DP结果会重复两次 对于有两个相同的会重复一次 统计出都相同的 两个相同的 最后减掉。。有点乱 不过A了

先预处理 时间差不多4S多 再O(1)询问

 #include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stdlib.h>
using namespace std;
#define LL long long
#define mod 1000000007
int dp[][][],prim[],o[];
int p1[][],p2[][],p3[][];
int num;
void init()
{
int i,j;
o[] = ;
o[] = ;
for(i = ; i <= ; i ++)
{
if(!o[i])
{
for(j = i+i; j <= ; j += i)
{
o[j] = ;
}
}
}
num = ;
for(i = ; i <= ; i ++)
{
if(!o[i])
prim[num++] = i;
}
for(i = ; i < num ; i++)
{
dp[][][prim[i]] = ;
dp[][][prim[i]] = ;
dp[][][prim[i]] = ;
}
for(i = ; i < num ; i++)
{
for(j = prim[i] ; j <= ; j++)
{
int k = j-prim[i];
if(!o[k]&&k>=prim[i])
dp[][][j] = (dp[][][j]+dp[][][k])%mod;
if(j%prim[i]==)
{
int k = j/prim[i];
if(k>=prim[i])
{
dp[][][j] = (dp[][][j]+dp[][][k])%mod;
dp[][][j] = dp[][][j];
}
}
}
}
for(i = ; i < num ; i++)
{
for(j = prim[i] ; j <= ; j++)
{
if(j%prim[i]==)
dp[][][j] = (dp[][][j]+dp[][][j/prim[i]])%mod;
dp[][][j] = (dp[][][j-prim[i]]+dp[][][j])%mod;
dp[][][j] = (dp[][][j]+dp[][][j-prim[i]])%mod;
}
}
for(i = ; i < num ; i++)
{
LL s = (LL)prim[i]*(LL)prim[i]*(LL)prim[i];
LL ss = prim[i]*;
if(ss<=)
p2[][ss] = (p2[][ss]+)%mod;
if(s<=)
p1[][s] = (p1[][s]+)%mod;
for(j = ; j < num ; j++)
{
if(j==i)
continue;
LL s = (LL)prim[i]*(LL)prim[i]*(LL)prim[j];
if(s<=)
p1[][s] = (p1[][s]+)%mod;
else
break;
}
for(j = ; j < num ; j++)
{
if(j==i)
continue;
LL ss = (LL)prim[i]*+prim[j];
if(ss<=)
p2[][ss] = (p2[][ss]+)%mod;
else
break;
}
}
}
int main()
{
int x;
init();
while(scanf("%d",&x)!=EOF)
{
LL s = (dp[][][x]+dp[][][x]+dp[][][x]+dp[][][x])%mod;
s = (s+(dp[][][x]-(p1[][x]+p1[][x]*))/+p1[][x]+p1[][x])%mod;
s = (s+(dp[][][x]-(p2[][x]+p2[][x]*))/+p2[][x]+p2[][x])%mod;
if(s<)
s+=mod;
printf("%lld\n",s);
}
return ;
}

2013 ACM/ICPC Asia Regional Changsha Online - G(DP)的更多相关文章

  1. 2013 ACM/ICPC Asia Regional Changsha Online G Goldbach

    比赛的时候,被题目误导了,题目最后说结果可能很大,要取模,那时就想直接求会TLE的!!! 赛后才知道,坑啊………… 代码如下: #include<iostream> #include< ...

  2. 2013 ACM/ICPC Asia Regional Changsha Online - C Color Representation Conversion

    这个纯粹是一个细节题啊!!! 由于某个地方的浮点数比较写错了,WA了无数次啊…… 代码如下: #include<iostream> #include<cstdio> #incl ...

  3. 2013 ACM/ICPC Asia Regional Changsha Online–C (模拟)

    题目描述 略... 题解 注意控制精度即可....变量全部定义成double,结果round就行....妈蛋....被这题目恶心死了.... 代码: #include <iostream> ...

  4. 2013 ACM/ICPC Asia Regional Changsha Online – C题 Color Representation Conversion (坑爹模拟题)

    题意:给你三种颜色表示模式,RGB,HSV和HSL,实现任意模式之间两两转化. 1.最好别看题目中给的转化公式描述,我觉得叙述的一点也不清楚,看维基百科,把维基百科上的公式一句一句翻译过来就好 2.在 ...

  5. 2013 ACM/ICPC Asia Regional Changsha Online - E

    第一个被板刷的题 取余 依次算在周几 #include <iostream> #include<cstdio> #include<cstring> #include ...

  6. 2013 ACM/ICPC Asia Regional Changsha Online J Candies

    AC了,但是不知道为什么,但是恶心的不得了~最近写代码,思路都非常清晰,但是代码各种bug~T.T~说说思路吧:二分~330ms~ 小队友fribbi的思路是离线250msAC~ 预处理solve函数 ...

  7. 2013 ACM/ICPC Asia Regional Changsha Online - J

    原题戳这里. 题意: 有一未知列数a1,a2,a3.....an, 已知s[i]=a[i-1]+a[i]+a[i]  (1<i<n) s[1]=a[1]+a[2]; s[n]=a[n-1] ...

  8. hduoj 4706 Children&#39;s Day 2013 ACM/ICPC Asia Regional Online —— Warmup

    http://acm.hdu.edu.cn/showproblem.php?pid=4706 Children's Day Time Limit: 2000/1000 MS (Java/Others) ...

  9. hduoj 4710 Balls Rearrangement 2013 ACM/ICPC Asia Regional Online —— Warmup

    http://acm.hdu.edu.cn/showproblem.php?pid=4710 Balls Rearrangement Time Limit: 6000/3000 MS (Java/Ot ...

随机推荐

  1. javascript 事件的学习

    1.事件绑定: addEventListener , removeEventListener.是dom2级别的事件绑定 attachEvent , detachEvent 是IE的事件绑定. 2. 事 ...

  2. php curl 伪造IP来源的代码分享

    php curl 可以模仿用户登录,还可以模仿用户IP地址.伪造IP来源. 1,curl发出请求的文件fake_ip.php: <?php $ch = curl_init(); $url = & ...

  3. C++ 编写 CorelDRAW CPG 插件例子(1)—WelcomeScreen

    据我所知,这是国外论坛最早的一个例子,原贴在此:http://forum.oberonplace.com/showthread.php?t=1880&highlight=Plugins 贴上主 ...

  4. 实时数据处理环境搭建flume+kafka+storm:4.storm安装配置

    1.解压 apache-storm-0.9.3.tar.gz   2.修改配置文件 conf/storm.yaml --zk地址  storm.zookeeper.servers:  - " ...

  5. REST Design Concerns

    Less Requests, More data; one of the core RESTful API design paradigms is the concept of less API re ...

  6. RE:转:一些不常用的html代码

    1. oncontextmenu="window.event.returnvalue=false" 将彻底屏蔽鼠标右键<table border oncontextmenu= ...

  7. @Autowired获取配置文件中被注入实例的两种方式

    一.说明 二.那么在JavaBean中如何通过@Autowired获取该实例呢?有两种方式: 1.直接获取 @RunWith(SpringJUnit4ClassRunner.class) @Conte ...

  8. js的基本概念详解

    来自<javascript高级程序设计 第三版:作者Nicholas C. Zakas>的学习笔记(三) 如果你刚学js,想快速了解到js的基本概念,以下将会是一篇不错的引导文章: 语法 ...

  9. [Firefly引擎][学习笔记四][已完结]服务器端与客户端的通讯

    原地址:http://www.9miao.com/question-15-54981.html 传送门:学习笔记一学习笔记二学习笔记三 前言:学习笔记三是模块封装,这个在持续开发中会不断更新, 因为写 ...

  10. ExtJS4 MVC开发教程:搭建开发环境

    原文地址:http://www.lihuai.net/qianduan/extjs/864.html 博主系列教程:http://www.lihuai.net/qianduan/extjs 在所有的J ...