PAT (Advanced Level) Practice - 1103 Integer Factorization(30 分)
发布日期:2021-06-30 23:43:30
浏览次数:3
分类:技术文章
本文共 955 字,大约阅读时间需要 3 分钟。
题目链接:
题目大意:略。
解题思路:先求出所有的 val^p,然后题目就转变成凑数问题(附:最大凑数的总和以及字典序)。
AC 代码
#include#include #define mem(a,b) memset(a,b,sizeof a)#define ssclr(ss) ss.clear(), ss.str("")#define INF 0x3f3f3f3f#define MOD 1000000007using namespace std;typedef long long ll;int n,k,p,ans;vector v, rsv, tv;void dfs(int sum, int l, int isum, int idx){ if(sum==n && l==k && isum>ans) { ans=isum; rsv=tv; return; } for(int i=idx;i>=1;i--) { if(l+1>k || sum+v[i]*(k-l) n) continue; // 剪枝2 tv[l]=i; dfs(sum+v[i],l+1,isum+i,i); // 剪枝3:最后一个是 i }}int main(){ ll val; int idx=0; scanf("%d%d%d",&n,&k,&p); tv.resize(k); while(idx<=n) { val=ll(pow(idx,p)+0.5); if(val>n) break; v.push_back(val); idx++; } dfs(0,0,0,idx-1); if(rsv.size()==0) puts("Impossible"); else { printf("%d = %lld^%d",n,rsv[0],p); for(int i=1;i
转载地址:https://lux-sun.blog.csdn.net/article/details/82216321 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月13日 09时15分40秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
对于中断函数返回值的分析
2019-04-30
x210——Android睡眠唤醒串口打印信息
2019-04-30
tianxiawuzhei_linux中触摸屏驱动的实现——基于s3c6410处理器
2019-04-30
四线触摸屏原理
2019-04-30
小议Linux staging tree
2019-04-30
关于内核中 #ifdef CONFIG_**的问题
2019-04-30
Linux Kernel and Android 休眠与唤醒(中文版)
2019-04-30
C/C++如何返回一个数组/指针
2019-04-30
腾讯AI语音识别API踩坑记录
2019-04-30
linux中Oops信息的调试及栈回溯—Linux人都知道,这是好东西!
2019-04-30
C语言与javascript的不同之处
2019-04-30
Android照相功能驱动层中HAL的实现(基于OK6410开发板+OV9650摄像头)
2019-04-30
基于U-boot上TFTP服务器更新系统
2019-04-30
P3811 【模板】乘法逆元
2019-04-30
P5431 【模板】乘法逆元2
2019-04-30
P1495 【模板】中国剩余定理(CRT)/曹冲养猪
2019-04-30
P3868 [TJOI2009]猜数字
2019-04-30
YbtOJ——贪心算法【例题3】畜栏预定
2019-04-30
YbtOJ——贪心算法【例题2】雷达装置
2019-04-30