news 2026/8/7 22:47:07

OJ刷题小结(12.11)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
OJ刷题小结(12.11)

题目1: 星图演化的总亮度(快速幂,第四次比赛补题)

问题:

思路:

由题目可推出n级的所有星图总亮度之和为,n的范围过大,还需要大数取模。而快速幂的时间复杂度低,仅有O(logn),并且适用于大数取模(模幂运算),它可以在每一步都取模,避免中间结果溢出,并保证结果正确,故使用快速幂算法(详情看C知识点专栏第二篇)

代码:

#include <stdio.h> #include <stdlib.h> //题目翻译:求3^n*2^n,相当于求6^n,考虑递归快速幂 const long long MOD=1000000007; long long qpow(long long n){ if(n==0){ return 1; } else if(n%2==1){ return (qpow(n-1)*6)%MOD; } else{ long long t=qpow(n/2); return (t*t)%MOD; } } int main() { long long n; scanf("%lld",&n); printf("%lld",qpow(n)); return 0; }

题目2:字符串翻转

问题:

思路:

分奇偶来考虑,n为偶数,则将字符串分为二段来输出,每段各输出n/2个字符;

n为奇数,则将字符串分为三段来输出,第一段输出前n/2个,第二段输出一个(最中间),第三段输出后n/2个

注意:单个字符输出用%c,%s期望的是一个\0结尾的字符数组的首地址

%s:用于字符串(字符数组)

🔹 含义

  • 读取或输出以空字符\0结尾的字符序列

  • 自动跳过开头的空白字符

  • 遇到空白字符(空格、\n、\t)就停止读取

代码:

#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char str[100]; scanf("%s",str); int n; n=strlen(str); int idx=n/2; if(!(n%2)){ for(int i=idx-1;i>=0;i--){ printf("%c",str[i]); } for(int i=n-1;i>=idx;i--){ printf("%c",str[i]); } } else{ for(int i=idx-1;i>=0;i--){ printf("%c",str[i]); } printf("%c",str[idx]); for(int i=n-1;i>=idx+1;i--){ printf("%c",str[i]); } } // fdsa glkj n/2-1~0 n-1~n/2 闭区间 // fas a glk n/2-1~0 n/2 n-1~n/2+1 闭区间 return 0; }

题目3:up,up,up!!!(第四次比赛补题)

问题:

思路:

代码:

#include <stdio.h> #include <stdlib.h> int main() { int T; scanf("%d",&T); while(T--){ int n; scanf("%d",&n); int *num=malloc(sizeof(int)*n); for(int i=0;i<n;i++){ scanf("%d",&num[i]); } int issame=0; for(int i=0;i<n-1;i++){ for(int j=i+1;j<n;j++){ if(num[j]==num[i]){ issame=1; } } } if(issame){ printf("NO\n"); } else{ printf("YES\n"); } free(num); } return 0; }

题目4:zwz买装备哦(第四次补题)

问题:

思路:

逐个比较

代码:

#include <stdio.h> int main() { int n, x, y, z, t; scanf("%d %d %d %d %d", &n, &x, &y, &z, &t); int ans=x+y; // 不换装备的战斗力 int money=t+z; // 卖掉旧装备后的总钱数 for (int i=0;i<n;i++) { int a,b,c; scanf("%d %d %d",&a,&b,&c); if(c<=money){ int power=a+b; if(power>ans) { ans=power; } } } printf("%d\n",ans); return 0; }

题目5:qqq的好数组(第四次补题)

问题:

思路:

二个数字,如果它们%q都相等,那么他们一定能通过有限次+q的操作达到相等

代码:

#include <stdio.h> #include <stdlib.h> int main() { int n,q; scanf("%d %d",&n,&q); int *num=malloc(sizeof(int)*n); for(int i=0;i<n;i++){ scanf("%d",&num[i]); } int a=1; int y=num[0]%q; for(int i=1;i<n;i++){ if((num[i]%q)!=y){ a=0; break; } } if(a) printf("YES"); else printf("NO"); free(num); return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/7 15:56:38

14 类圣诞核心 SVG 交互方案拆解(附案例 + 资源)

1. 选择类交互&#xff1a;精准匹配礼物需求 交互方案核心逻辑品牌案例关键组件 / 操作要点学习资源挤压伸长以 “选择” 为核心&#xff0c;通过挤压交互引导用户筛选礼物类型OPARTMENT《圣诞爱意》、尚美《你的礼想型》「挤压伸长」&#xff08;UGC 组件&#xff09;&#x…

作者头像 李华
网站建设 2026/8/6 23:49:31

7个技巧轻松搞定Node.js版本升级:从16.x到20.x的无痛迁移指南

7个技巧轻松搞定Node.js版本升级&#xff1a;从16.x到20.x的无痛迁移指南 【免费下载链接】PowerShell PowerShell/PowerShell: PowerShell 是由微软开发的命令行外壳程序和脚本环境&#xff0c;支持任务自动化和配置管理。它包含了丰富的.NET框架功能&#xff0c;适用于Window…

作者头像 李华
网站建设 2026/8/5 1:15:10

MCP SC-400配置避坑手册(一线专家亲授10大常见错误)

第一章&#xff1a;MCP SC-400量子安全配置实务概述在当前量子计算快速发展的背景下&#xff0c;传统加密体系面临前所未有的破解风险。MCP SC-400作为新一代量子安全通信协议配置标准&#xff0c;专为抵御量子攻击设计&#xff0c;提供前向安全性、抗量子算法支持及动态密钥协…

作者头像 李华
网站建设 2026/8/7 22:11:30

Ghost没落、同行消失,深度却靠国产系统翻盘?关键点不止一个!

当年国内装机有多乱&#xff0c;可能好多人都想不起来了如果你经历过早年的网吧时代&#xff0c;你一定忘不了那个画面&#xff1a;电脑蓝屏&#xff0c;网管把U盘往机器上一插&#xff0c;Ghost一跑&#xff0c;十几分钟系统满血复活。那时候说是Ghost的黄金年代也不足为过。而…

作者头像 李华
网站建设 2026/8/7 3:23:09

5分钟掌握PROPKA:蛋白质pKa预测的终极入门指南

5分钟掌握PROPKA&#xff1a;蛋白质pKa预测的终极入门指南 【免费下载链接】propka PROPKA predicts the pKa values of ionizable groups in proteins and protein-ligand complexes based in the 3D structure. 项目地址: https://gitcode.com/gh_mirrors/pr/propka 想…

作者头像 李华
网站建设 2026/8/6 0:57:34

dotNetFx40_Full_x86_x64:解决Windows开发环境配置难题的终极方案

dotNetFx40_Full_x86_x64&#xff1a;解决Windows开发环境配置难题的终极方案 【免费下载链接】dotNetFx40_Full_x86_x64完整安装包 此项目提供 dotNetFx40_Full_x86_x64 完整安装包&#xff0c;适用于需要 Microsoft .NET Framework 4.0 的用户。该安装包包含 x86 和 x64 两个…

作者头像 李华