当前位置: 首页 > news >正文

OJ53 54 55

双重回文数

作者: xxx

时间限制: 1s

章节: 一维数组

问题描述

如果一个数从左往右读和从右往左读都是一样,那么这个数就叫做回文数。例如,12321就是一个回文数,而77778就不是。当然,回文数的首和尾都应是非零的,因此0220就不是回文数。事实上,有一些数(如21),在十进制时不是回文数,但在其它进制(如二进制时为10101)时就是回文数。 编一个程序,从文件读入两个十进制数 N (1<= N <= 15) S (0 <S <10000) 然后找出前N个满足大于S且在两种或两种以上进制(二进制至十进制)上是回文数的十进制数,输出到文件上。 本问题的解决方案不需要使用大于4字节的整型变量。

输入说明

只有一行,用空格隔开的两个数N和S。

输出说明

N行, 每行一个满足上述要求的数,并按从小到大的顺序输出。

总结

对于需要在头插入内容的变量,可以全部先在尾部插入后再做逆置,这样的话时间复杂度会小很多。

#include <iostream> #include <string> #include <algorithm> using namespace std; string shi_change_qt(int n,int jinzhi){ string s=""; while(n>0){ int yushu=n%jinzhi; // s.insert(0,(char)('0'+yushu));//再次提醒一位数字转为char从ascii码角度出发 s.push_back((char)('0' + yushu)); // 始终插在末尾,复杂度 O(1) n=n/jinzhi; } reverse(s.begin(), s.end()); // 循环结束后,统一反转字符串 return s; } int pdhuiwen(string n){ int length=n.length(); for(int i=0;i<length;i++){ if(n[i]!=n[length-1-i]) return 0; } return 1; } int main(){ int N,S; cin>>N>>S; int num=S+1; while(N>0){ int count=0; if(pdhuiwen(to_string(num))) count++; for(int i=2;i<10;i++){ string a=shi_change_qt(num,i); if(pdhuiwen(a)) count++; if(count>=2) break; } if(count>=2) { N--; cout<<num<<endl; } num++; } }

等差数列

作者: xxx

时间限制: 1s

章节: 一维数组

问题描述

一个等差数列是一个能表示成a, a+b, a+2b,..., a+nb (n=0,1,2,3,...) 在这个问题中a是一个非负的整数,b是正整数。

写一个程序来找出在双平方数集合S中长度为n的等差数列。双平方数集合是所有能表示成p2+q2的数的集合。

输入说明

第一行: N(3<= N<=25),要找的等差数列的长度。 第二行: M(1<= M<=250),搜索双平方数的上界0 <= p,q <= M。

输出说明

如果没有找到数列,输出`NONE'。

如果找到了,输出一行或多行, 每行由两个整数组成:a,b 这些行应该先按b排序再按a排序(均为升序)。

将不会有多于10,000个等差数列。

总结

预处理: 先用一个布尔数组 is_bisquare[2 * M * M + 1] 标记哪些数是双平方数。这比每次去算 p^2+q^2 快得多。
枚举顺序: 为了方便输出,你可以外层循环枚举公差 b,内层循环枚举首项 a

#include <iostream> #include <cmath> #include <vector> using namespace std; int main(){ int N,M; cin>>N>>M; bool is_bisquare[125001]={false}; for(int p=0;p<=M;p++){ for(int q=p;q<=M;q++){ int num=p*p+q*q; is_bisquare[num]=true; } } int sumcount=0; for(int b=1;b<=(2*M*M)/(N-1);b++){ for(int a=0;a<M*M;a++){ int count=0; while(count!=N){ if(is_bisquare[a+count*b]) count++; else break; } if(count==N) { cout<<a<<" "<<b<<endl; sumcount++; } } } if(sumcount==0) cout<<"NONE"; }

人见人爱A-B

作者: xxx

时间限制: 1s

章节: 一维数组

问题描述

A和B是两个集合,A-B求的是两个集合的差,就是做集合的减法运算。(当然,大家都知道集合的定义,就是同一个集合中不会有两个相同的元素,这里还是提醒大家一下)呵呵,很简单吧?

输入说明

输入数据包含T个测试实例。

首先输入数字T,然后输入T组测试数据,每组输入数据占1行,每行数据的开始是2个整数n(0<=n<=100)和m(0<=m<=100),分别表示集合A和集合B的元素个数,然后紧跟着n+m个元素,前面n个元素属于集合A,其余的属于集合B. 每个元素为不超出int范围的整数,元素之间由一个空格隔开.

输出说明

针对每组数据输出一行数据,表示A-B的结果,如果结果为空集合,则输出“NULL”,否则从小到大输出结果,为了简化问题,每个元素后面跟一个空格.

总结

由于set底层是红黑树,对于it指向的节点需要用*来获取具体数值,it仅仅是个指针

#include <iostream> #include <set> using namespace std; int main(){ int T,n,m; cin>>T; while(T--){ cin>>n>>m; set<int> s; s.clear(); while(n--){ int num; cin>>num; s.insert(num); } while(m--){ int num; cin>>num; if(s.count(num)) s.erase(num); } if(s.empty()) { cout<<"NULL"<<endl; continue; } for(auto it=s.begin();it!=s.end();it++){//由于set底层是红黑树,对于it指向的节点需要用*来获取具体数值,it仅仅是个指针 cout<<*it<<" "; } cout<<endl; } }

英语翻译

曾几何时,人们可以明确地将计算机划分为三类。大型机被安置在大型、封闭式的机架内。小型机体积较小、价格较低、性能也稍逊一筹,但能够支持多位用户并运行商业软件。微型计算机与其他类别中的计算机有着明显的区别,因为它们专为单个用户设计,其CPU由单个微处理器芯片组成。

如今,微处理器已不再作为区分计算机类别的一个显著标志,因为几乎每一台计算机都采用一个或多个微处理器作为其中央处理器(CPU)。“微型计算机”这一术语已逐渐弃用,“微计算机”和“大型机”这两个术语的使用频率也越来越低。

当今最强大的计算机包括超级计算机、大型机和服务器。这些设备通常被应用于企业和政府机构。它们具备为众多同时用户提供服务以及以极快速度处理数据的能力。

单词

http://www.cnnetsun.cn/news/1290466.html

相关文章:

  • Flutter 三方库 sample_downloader 鸿蒙适配指南 - 实现海量样本数据自动化并行采集、在 OpenHarmony 上打造高效下载调度防御线实战
  • 【数据结构算法】二分查找
  • pikachu靶场——SQL-Inject—2(Kali系统)占位符
  • 深入了解JVM
  • 通过git上传代码到gitlab(包含第一次上传)小结
  • java毕业设计——基于JSP+sqlserver的人事管理系统设计与实现(毕业论文+程序源码)——人事管理系统
  • 【云计算】AWS核心服务解析:Dynamo到RDS全览
  • Visual Studio 2013 - 调试模式下根据内存地址查看内存
  • wow-byte字节操作说明
  • DevSecOps依赖安全:10个必备工具保护你的软件供应链
  • wow-hfile文件操作说明
  • mmdetection目标检测API封装:Python SDK开发全攻略
  • 如何快速上手LedisDB:高性能NoSQL数据库的完整指南
  • Leetcode_226. 翻转二叉树
  • 如何快速掌握Python 3:面向初学者的完整学习指南
  • Python笔记 - 利用装饰器设计注解体系
  • weixin225基于微信小程序的汽车销售系统的设计与实现springboot(文档+源码)_kaic
  • PyCaret批量预测:处理大规模推理任务的终极指南
  • Xcode 16及升级 Xcode 26 编译弹窗问题、编译通过无法,编译通过打包等问题汇总
  • 【JEECG 组件扩展】JUpload上传组件扩展拖拽区域上传
  • 看懂 SAP Memory Management:从用户会话、工作进程到系统调优的完整脉络
  • 智慧校园可视化大屏实战:从教室使用率到安全预警的8个真实案例
  • 快速获取天地图Key的完整指南(onmap)
  • Redis可视化利器——RedisDesktopManager的安装与实战指南
  • F2FS源码探秘-1.5 [NAT结构解析] Node Address Table的内存管理与优化策略
  • 手把手教你用AT32F415搭建低成本CAN记录仪(含FATFS文件系统移植)
  • 深入剖析STM32启动流程:从Flash到SRAM的代码执行之旅
  • Resolving NotImplementedError in YOLO: How to Handle Unsupported ‘_new‘ Mode for Undefined Tasks
  • 基于高德地图JSAPI的驾车路线规划实战:从基础集成到策略优化
  • 从B站到抖音:不同平台视频GOP设置的秘密(附ffprobe分析技巧)