[Swust OJ 838]--最优价值(0-1背包+数学)
题目链接:http://acm.swust.edu.cn/problem/838/
Description
我们定义了这个一个函数:
void Judge(int x, int &A, int &B, int &C)
{
int i;
for (A = ; A<x; A++)
if (x%A == )
{
B = x / A;
break;
}
C = ;
for (i = ; i <= x; i++)
if (x%i == )
C++;
}
对于每一个非素数X可以通过Judge函数得到A,B,C三个数。X的价值就定义为V=(A^B)%C
对于素数Y的价值V定义为:V=Y%10
现在给你一个大于1的正整数N,那么你将会有一个区间[2,N],现在你的问题是从中选择若干个互不相同的数,使其和不大于给定的另一个数S。同时使这些互不相等的数的价值总和最大。所以问题就是给定N和S,求出满足上诉条件的最大总价值。
Input
输入两个数N,S.(2<=N<=20000,2<=S<=60000)
输出最大的总价值。
Sample Input
| 3 3 |
Sample Output
| 3 |
//背包,素数表,高精度取模
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std; #define maxn 60005
typedef long long LL;
LL wi[maxn], vi[maxn], dp[maxn], n, s;
LL prime[maxn] = { , , }; void Prime(){
for (int i = ; i <= maxn; i++){
if (!prime[i]){
for (int j = ; i*j <= maxn; j++)
prime[i*j] = ;
}
}
} LL mulit_mod(LL a, LL b, LL c){
LL t = ;
while (b){
if (b & ) t = a*t % c;
b >>= ;
a = a*a % c;
}
return t;
} LL judge(LL x){
LL a, b, vi, t = (LL)sqrt((double)x);
if (!(x & )){
a = ;
b = x / ;
}
else{
for (a = ; a <= t; a++){
if (x%a == ){
b = x / a;
break;
}
}
}
vi = ;
//优化一下,否则超时
//for (LL i = 1; i <= x; i++){
// if (!(x%i)) vi++;
//}
for (LL i = ; i <= t; i++){
if (!(x%i)){
LL e = x / i;
if (e > i) vi += ;
else if (e == i)
vi += ;
}
}
return mulit_mod(a, b, vi);
} void init(){
Prime();
for (LL i = ; i < maxn; i++){
wi[i] = i;
if (prime[i]) vi[i] = judge(i);
else vi[i] = i % ;
}
} int main(){
init();
while (~scanf("%lld%lld", &n, &s)){
memset(dp, , sizeof(dp));
for (LL i = ; i <= n; i++){
for (LL j = s; j >= wi[i]; j--)
dp[j] = max(dp[j], dp[j - wi[i]] + vi[i]);
}
printf("%lld\n", dp[s]);
}
return ;
}
[Swust OJ 838]--最优价值(0-1背包+数学)的更多相关文章
- [Swust OJ 404]--最小代价树(动态规划)
题目链接:http://acm.swust.edu.cn/problem/code/745255/ Time limit(ms): 1000 Memory limit(kb): 65535 Des ...
- [Swust OJ 649]--NBA Finals(dp,后台略(hen)坑)
题目链接:http://acm.swust.edu.cn/problem/649/ Time limit(ms): 1000 Memory limit(kb): 65535 Consider two ...
- SWUST OJ NBA Finals(0649)
NBA Finals(0649) Time limit(ms): 1000 Memory limit(kb): 65535 Submission: 404 Accepted: 128 Descri ...
- 手机APP例如抖音,让 people‘s 注意力集中到了 社会进化的 优胜部分 (优胜劣汰,什么是优) + 真善美,的 “美” , 促进了2极分化, 会产生强者俞强,弱者越弱,确实促进了信息的流通,传播了有用的东东 产生了独特的价值 而 如何 能计算出这些价值呢, 需要 数学 金融 财务 货币 量化吗
手机APP例如抖音,让 people‘s 注意力集中到了 社会进化的 优胜部分 (优胜劣汰,什么是优) + 真善美,的 “美” , 促进了2极分化, 会产生 ...
- P1417 烹调方案 (0/1背包+贪心)
题目背景 由于你的帮助,火星只遭受了最小的损失.但gw懒得重建家园了,就造了一艘飞船飞向遥远的earth星.不过飞船飞到一半,gw发现了一个很严重的问题:肚子饿了~ gw还是会做饭的,于是拿出了储藏的 ...
- poj1417 带权并查集+0/1背包
题意:有一个岛上住着一些神和魔,并且已知神和魔的数量,现在已知神总是说真话,魔总是说假话,有 n 个询问,问某个神或魔(身份未知),问题是问某个是神还是魔,根据他们的回答,问是否能够确定哪些是神哪些是 ...
- 洛谷 P1064 金明的预算方案 (有依赖的0/1背包)
题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过NN元钱就行”. ...
- POJ 1636 Prison rearrangement DFS+0/1背包
题目链接: id=1636">POJ 1636 Prison rearrangement Prison rearrangement Time Limit: 3000MS Memor ...
- POJ 1745 【0/1 背包】
题目链接:http://poj.org/problem?id=1745 Divisibility Time Limit: 1000MS Memory Limit: 10000K Total Sub ...
随机推荐
- (7) 引用Objective-C class library
原文 引用Objective-C class library 这个范例是如何在Xamarin.ios中去使用一个我们自行在Xcode中开发的Objective-c Class Library. 主要会 ...
- javascript线程解释(setTimeout,setInterval你不知道的事)
john resig写的一篇文章: 原文地址:http://ejohn.org/blog/how-javascript-timers-work/ 作为入门者来说,了解JavaScript中timer的 ...
- Problem 2128 最长子串(kmp+strstr好题经典)
Problem 2128 最长子串 Accept: 134 Submit: 523Time Limit: 3000 mSec Memory Limit : 65536 KB Probl ...
- ZOJ 1563 Pearls(动态规划)
/* 分析: 因为他给的数据是递增的 而求得是这些数据总的 最优解 所以我们可以考虑,它的子问题求解不影响总的求解 也就是我们可以先求出 第一个的最优解 第二个....以此类推到总的最优解 那么我们想 ...
- jquery新增,删除 ,修改,清空select中的option
jQuery获取Select选择的Text和Value: 1. var checkText=jQuery("#select_id").find("option:selec ...
- VSS的配置和使用
目录: 〇. 摘要一. 开发前的准备二. 创建空的SourceSafe数据库三. 新建项目并加入版本控制四. 获取SourceSafe中的项目五. 版本控制的几个概念六. 版本控制项目的管理七. ...
- trangle
#include<iostream> #include<algorithm> using namespace std; int main() { int a,b,c; whil ...
- MVC上传文件受限制
mvc自带设置4M一下的字体可以上传,4M以上的字体需要对web.config进行设置 <system.web> <httpRuntime targetFramework=" ...
- 关于Python网络爬虫实战笔记③
Python网络爬虫实战笔记③如何下载韩寒博客文章 Python网络爬虫实战笔记③如何下载韩寒博客文章 target:下载全部的文章 1. 博客列表页面规则 也就是, http://blog.sina ...
- eclipse run on server 浏览器启动设置