CF1428 G1,G2 . Lucky Numbers题解
CF1428 G1,G2 . Lucky Numbers
首先可以发现写下的这些数中最多只有一个数不是全部由0,3,6,9构成的。
然后其余的必须是3的倍数。可以发现这就是一个多重背包问题,将每一额物品拆分成log2\log_2log2个就行了。
/*
{
######################
# Author #
# Gary #
# 2020 #
######################
*/
//#pragma GCC target ("avx2")
//#pragma GCC optimization ("O3")
//#pragma GCC optimization ("unroll-loops")
#pragma GCC optimize(2)
#include<bits/stdc++.h>
#define rb(a,b,c) for(int a=b;a<=c;++a)
#define rl(a,b,c) for(int a=b;a>=c;--a)
#define LL long long
#define IT iterator
#define PB push_back
#define II(a,b) make_pair(a,b)
#define FIR first
#define SEC second
#define FREO freopen("check.out","w",stdout)
#define rep(a,b) for(int a=0;a<b;++a)
#define SRAND mt19937 rng(chrono::steady_clock::now().time_since_epoch().count())
#define random(a) rng()%a
#define ALL(a) a.begin(),a.end()
#define POB pop_back
#define ff fflush(stdout)
#define fastio ios::sync_with_stdio(false)
#define check_min(a,b) a=min(a,b)
#define check_max(a,b) a=max(a,b)
using namespace std;
const int INF=0x3f3f3f3f;
typedef pair<int,int> mp;
/*}
*/
const int MAXN=1000000;
int k;
int f[6];
int num=1;
LL dp[MAXN+20];
LL calc(int num){LL ret=0;rb(i,0,5){if((num%10)%3==0){ret+=1ll*(num%10)/3*f[i];}num/=10;}return ret;
}
int main(){scanf("%d",&k);k--;memset(dp,-127,sizeof(dp));dp[0]=0;rb(i,0,5){vector<pair<LL,LL> > obj; scanf("%d",&f[i]);int cnt_obj=3*k;int z=1;while(cnt_obj>=z){cnt_obj-=z; if(1ll*z*num<=1ll*MAXN)obj.PB(II(1ll*3*z*num,1ll*z*f[i]));
// cout<<z*num<<' '<<z*f[i]<<endl;z<<=1; }if(cnt_obj){if(1ll*cnt_obj*num<=1ll*MAXN)obj.PB(II(1ll*3*cnt_obj*num,1ll*cnt_obj*f[i]));}for(auto it:obj){rl(ii,MAXN,it.FIR){check_max(dp[ii],dp[ii-it.FIR]+it.SEC);}}rl(ii,MAXN,0)rb(j,0,9){if(j*num<=ii){check_max(dp[ii],dp[ii-j*num]+(j%3==0? 1ll*(j/3)*f[i]:0ll));} else break;}num*=10;}int q;scanf("%d",&q);while(q--){int ni;scanf("%d",&ni);printf("%I64d\n",dp[ni]);
// LL rest=0;
// rb(i,0,ni){// if((ni-i)%3==0){// check_max(rest,dp[(ni-i)/3]+calc(i));
// }
// }
// cout<<rest<<endl;}return 0;
}
CF1428 G1,G2 . Lucky Numbers题解相关推荐
- Codeforces791:Ordinary Numbers题解
Codeforces Round#791(Div.3) B.Ordinary Numbers Ordinary Numbers题解 Codeforces Round#791(Div.3) B.Ordi ...
- HDU 5676 ztr loves lucky numbers
-亚信科技,巴卡斯(杭州),壹晨仟阳(杭州),英雄互娱(杭州) (包括2016级新生)除了校赛,还有什么途径可以申请加入ACM校队? ztr loves lucky numbers Time Li ...
- D - Undoubtedly Lucky Numbers CodeForces - 244B(数论 )
Polycarpus loves lucky numbers. Everybody knows that lucky numbers are positive integers, whose deci ...
- 【CodeForces - 244B】Undoubtedly Lucky Numbers (dfs打表 + 二分)
题干: Polycarpus loves lucky numbers. Everybody knows that lucky numbers are positive integers, whose ...
- UVA10909 Lucky Number题解
原文链接:http://www.algorithmist.com/index.php/User:Sweepline/UVa_10909.cpp AC的C++语言程序: /** Solution for ...
- [ZZ]google G1,G2,G3比较
其实G1,G2,G3的主要不同点有以下几个: 1.CPU G1,G2都是Qualcomm MSM7201A 528 MHz G3是Qualcomm MSM7200A 528 MHz 应该说7201A出 ...
- google G1,G2,G3比较(YY)
其实G1,G2,G3的主要不同点有以下几个: 1.CPU G1,G2都是Qualcomm MSM7201A 528 MHz G3是Qualcomm MSM7200A 528 MH ...
- codeforces #235 D. Roman and Numbers 题解
转载请注明:http://blog.csdn.net/jiangshibiao/article/details/23100595 [原题] D. Roman and Numbers time limi ...
- Hexadecimal's Numbers 题解
点此打开原题链接:传送门 !!!!!: C. Hexadecimal's Numbers time limit per test 1 second memory limit per test 64 m ...
- HUST 1600 Lucky Numbers
暴力打表. #include<cstdio> #include<cstring> #include<cmath> #include<string> #i ...
最新文章
- 《CCNP TSHOOT 300-135认证考试指南》——6.4节SVI故障检测与排除
- Android驱动之 Linux Input子系统之TP——A/B(Slot)协议
- php动态网页设计教材,PHP动态网页设计(第2版)
- Microsoft SharePoint Server 2010 的新增功能
- vue 单独页面定时器 离开页面销毁定时器
- HTML 5 会让iOS和Android开发者转行吗?
- 手把手教你云服务器如何搭建typecho博客网站(包括配置免费SSL证书)
- [转载]Mysql导出表结构及表数据 mysqldump用法
- 阿里云前端周刊 - 第 18 期
- Ubuntu 安装 Libmodbus
- ARQ协议与滑动窗口协议
- Unity 导入图片安卓和IOS自动转换格式ETC2或者ASTC
- 去中心化和中心化哪个才是未来,Dex.top教你熊市生存指南
- 【PDF密码删除软件】Enolsoft PDF Password Remover for Mac
- cd与cd /d命令
- erdas查看灰度直方图_ERDAS图像的基本操作
- 魔术的逻辑(三)——明明是假的,但为何奇迹依旧美妙?
- 彻底删除软件,删除注册列表信息
- 服务器能用系统急救箱吗,360急救(乱用360系统急救箱后果)
- logicaldoc的外部认证——AD集成
热门文章
- Android中仿微信选择图片并展示在RecyclerView中
- 云服务器安卓虚拟机,云服务器安装安卓虚拟机
- j1900做网站服务器,j1900可以跟云服务器
- led伏安特性实验误差分析_1实验数据的误差分析与处理.doc
- C#ObjectArx Cad将图形范围缩放至指定实体
- android 源代码分析 绘制,Android源码分析(View的绘制流程)
- Linux第7章Gdk及Cairo基础,GNOME 平台的2D图形编程(GTK,GDK,Cairo...) 简介 [转]...
- 在vue中使用marked解析markdown文件
- 腾讯与阿里巴巴投资可编程芯片公司Barefoot Networks
- 【柒穆雨】什么是平面设计,学习平面设计需要具备什么条件?