2026/4/6 2:18:56
网站建设
项目流程
东莞网站建设的收费,3d建模怎么做,请问我做吉利网站吉利啊,网站运营团队管理欢迎大家订阅我的专栏#xff1a;算法题解#xff1a;C与Python实现#xff01; 本专栏旨在帮助大家从基础到进阶 #xff0c;逐步提升编程能力#xff0c;助力信息学竞赛备战#xff01;
专栏特色 1.经典算法练习#xff1a;根据信息学竞赛大纲#xff0c;精心挑选…欢迎大家订阅我的专栏算法题解C与Python实现本专栏旨在帮助大家从基础到进阶 逐步提升编程能力助力信息学竞赛备战专栏特色1.经典算法练习根据信息学竞赛大纲精心挑选经典算法题目提供清晰的代码实现与详细指导帮助您夯实算法基础。2.系统化学习路径按照算法类别和难度分级从基础到进阶循序渐进帮助您全面提升编程能力与算法思维。适合人群准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生希望系统学习C/Python编程的初学者想要提升算法与编程能力的编程爱好者附上汇总帖GESP认证C编程真题解析 | 汇总编程题B4070 奇妙数字【题目来源】洛谷B4070 [GESP202412 五级] 奇妙数字 - 洛谷【题目描述】小杨认为一个数字x xx是奇妙数字当且仅当x p a xp^axpa其中p pp为任意质数且a aa为正整数。例如8 2 3 82^3823所以8 88是奇妙的而6 66不是。对于一个正整数n nn小杨想要构建一个包含m mm个奇妙数字的集合{ x 1 , x 2 , ⋯ , x m } \{x_1,x_2,⋯,x_m\}{x1,x2,⋯,xm}使其满足以下条件集合中不包含相同的数字。x 1 × x 2 × ⋯ × x m x_1×x_2×⋯×x_mx1×x2×⋯×xm是n nn的因子即x 1 , x 2 , ⋯ , x m x_1,x_2,⋯,x_mx1,x2,⋯,xm这m mm个数字的乘积是n nn的因子。小杨希望集合包含的奇妙数字尽可能多请你帮他计算出满足条件的集合最多包含多少个奇妙数字。【输入】第一行包含一个正整数n nn含义如题面所示。【输出】输出一个正整数代表满足条件的集合最多包含的奇妙数字个数。【输入样例】128【输出样例】3【算法标签】《洛谷 B4070 奇妙数字》 #GESP# #2024#【代码详解】#includebits/stdc.husingnamespacestd;#defineintlonglong// 使用长整型intn,ans;// n: 输入的数, ans: 存储结果// 计算将一个数x表示为连续整数和所需的最少项数intcalc(intx){inttemp1,res0;// temp: 当前项的值, res: 项数计数while(xtemp){xx-temp;// 减去当前项temp;// 下一项增加1res;// 项数增加}returnres;}signedmain(){cinn;// 输入要分解的数// 质因数分解for(inti2;i*in;i){if(n%i0){// 找到质因数iintcnt0;// 计算该质因数的指数while(n%i0){cnt;n/i;}// 将指数分解为连续整数和anscalc(cnt);}}// 处理剩余的质因数如果有if(n!1)ans;coutansendl;return0;}【运行结果】128 3B4071 武器强化【题目来源】洛谷[B4071 GESP202412 五级] 武器强化 - 洛谷【题目描述】小杨有n nn种武器和m mm种强化材料。第i ii种强化材料会适配第p i p_ipi种武器小杨可以花费c i c_ici金币将该材料对应的适配武器修改为任意武器。小杨最喜欢第1 11种武器因此他希望适配该武器的强化材料种类数严格大于其他的武器请你帮小杨计算为了满足该条件最少需要花费多少金币。【输入】小杨有n nn种武器和m mm种强化材料。第i ii种强化材料会适配第p i p_ipi种武器小杨可以花费c i c_ici金币将该材料对应的适配武器修改为任意武器。小杨最喜欢第1 11种武器因此他希望适配该武器的强化材料种类数严格大于其他的武器请你帮小杨计算为了满足该条件最少需要花费多少金币。【输出】输出一个整数代表能够使适配第1 11种武器的强化材料种类数严格大于其他的武器最少需要花费的金币。【输入样例】4 4 1 1 2 1 3 1 3 2【输出样例】1【算法标签】《洛谷 B4071 武器强化》 #GESP# #2024#【代码详解】#includebits/stdc.husingnamespacestd;#defineintlonglongconstintN1005;intn,m,p,c,ans1e18;vectorinta[N];// 计算让1号孩子获得x票的最小花费intf(intx){intcntx-a[1].size();// 需要从其他孩子那里获取的票数vectorinttemp;// 存储可以购买的武器intres0;// 总花费// 处理其他孩子for(inti2;in;i){if(a[i].empty())continue;// 计算需要从这个孩子拿走多少武器intszmax(0LL,(longlong)(a[i].size()-x1));// 拿走最便宜的sz个武器for(intj0;jsz;j){resa[i][j];cnt--;}// 如果已经超过当前最优解提前返回if(resans)returnans;// 剩余的武器加入可选列表for(intjsz;ja[i].size();j){temp.push_back(a[i][j]);}}// 如果还需要更多票从剩余的武器中选择最便宜的if(cnt0){sort(temp.begin(),temp.end());for(inti0;icntitemp.size();i){restemp[i];}}returnres;}signedmain(){cinnm;// 读入数据并排序for(inti1;im;i){cinpc;a[p].push_back(c);}// 对每个孩子的武器按价格排序for(inti1;in;i){sort(a[i].begin(),a[i].end());}// 尝试让1号孩子获得从当前票数到总票数的各种可能intmin_votesmax((longlong)a[1].size(),1LL);for(intimin_votes;im;i){ansmin(ans,f(i));}coutansendl;return0;}【运行结果】4 4 1 1 2 1 3 1 3 2 1