c++ learn five five day

1.A-B数对

二分法

http://t.csdnimg.cn/2GNeH

将A-B=C转化成A=B+C,然后遍历数组,让数组的每个元素加C,再查找原数组中是否存在对应数组元素+C之后的值。(数据量比较大,所以我们就用二分在查找过程中提高效率,这里就用到了二分模板)。

因为原数组不一定是有序的,所以我们先使用C++STL库中的sort()函数进行升序排序,这样的数组就是有序的。我们查找每个元素+C第一次出现的下标和最后一次出现的下标,再让最后一次出现的下标-第一次出现的下标+1(用sum不断累加这个值),最后sum的值就是A-B数对的个数。

#include<iostream>
#include<algorithm>
#include<map>
using namespace std;
long long a[200001],n,c,cnt;
map<long long, long long>m;
void find(int l,int r,int num);int main() {int i;cin>>n>>c;for (i=0;i<n;i++) {cin>>a[i];m[a[i]]++;}sort(a,a+n);//分查找for (i=0;i<n;i++) {find(0,n-1,a[i]);}cout<<cnt;return 0;
}void find(int l,int r,int num)
{int mid;mid=(l+r)/2;if(l>r) return;if(num-a[mid]==c) {	cnt+=m[a[mid]];	return;}//如果差值比C大往右找else if (num-a[mid]>c)  find(mid+1,r,num);//如果差值比C小往左找else 					find(l,mid-1,num);
}

2.Good Kid

题意:有一个由n个数字组成的数组a,可以将其中任意一个数加一,求操作之后的最大乘积。

思路:加在最小的数上可以是乘积最大化。

#include<bits/stdc++.h>
using namespace std;
int main()
{int t;cin>>t;while(t--){int n,i,min,j,p=1,a[100];cin>>n;for(i=0;i<n;i++){cin>>a[i];if(i==0||a[i]<min){min=a[i];j=i;}}a[j]++;for(i=0;i<n;i++)	p=p*a[i];cout<<p<<endl;}return 0;
}

3.Short Sort

三个字母只要确保有一个在正确的位置上就行。

#include<bits/stdc++.h>
using namespace std;
int main()
{int n,i;char a[4];cin>>n;for(i=1;i<=n;i++){cin>>a;if(a[0]=='a'||a[1]=='b'||a[2]=='c')cout<<"YES"<<endl;else cout<<"NO"<<endl;}return 0;
}

4.Target Practice

此题是一道几何题,图从外到里依次为1-5分,X为射中了这个点,求总分。设某点坐标x,y,则该点分值为 { x,y,10-x+1,10-y+1 } 取其中的最小值,对所有射中点求和即可

5个正方形的环,越内圈分数越高。那给出一个坐标我们判断它属于那个环就行。

#include<stdio.h>
int main()
{int t;scanf("%d", &t);char c;scanf("%c", &c);for (int i = 0; i < t; i++){int s = 0;for (int j = 0; j < 10; j++) {for (int k = 0; k < 10; k++) {scanf("%c", &c);if (c == 'X'){int a = 5;if (j + 1 < a){a = j + 1;}if (10 - j < a){a = 10 - j;}if (k + 1 < a){a = k + 1;}if (10 - k < a){a = 10 - k;}s += a;}}scanf("%c", &c);}printf("%d\n", s);}return 0;
}

5.Round Down the Price

一道数学题,找到最接近某个数的10的幂,可以通过遍历每次乘以10,然后再求出差值。

#include<bits/stdc++.h>
using namespace std;
int main()
{long long n,t,m,i;cin>>n;for(i=0;i<n;i++){cin>>t;m=1;while(m<=t)	m=m*10;m=m/10;cout<<t-m<<endl;}return 0;
}

6.最大公约数和最小公倍数问题

  经典的gcd以及lcm的题(其实就是最大公约数和最小公倍数)

gcd一个很重要的定理:gcd(x,y)*lcm(x,y)=x*y

依靠这个定理,只需要进行枚举,便可AC

一层for循环,i初始值为1,终止值为x*y

如果x*y%i==0(意思看上方定理理解)以及gcd(i,x*y/i)==x(检测两数gcd是否为x)

#include<bits/stdc++.h>
using namespace std;
int gcd(int a,int b);
int main()
{int m,n,num,ans,i;cin>>m>>n;num=m*n;if(m==n)	ans--;for(i=1;i<=sqrt(num);i++){if(num%i==0&&gcd(i,num/i)==m)	{ans=ans+2;} }cout<<ans;return 0;
}
//辗转相除 
int gcd(int a,int b)
{if(a%b==0)	return b;else		return gcd(b,a%b);
}

7.Odd One Out

三个数中两个数一样,找出另一个数,水题,直接比较即可。

结合异或

可以用异或的性质来做,异或有以下两个性质:

1.两个相同的数异或等于0

2.0异或一个数等于这个数本身

发现这两个性质完美契合这道题,那我们直接输出三个数异或后的结果即可

#include<bits/stdc++.h>
using namespace std;int main()
{int t;cin>>t;while(t--){int a,b,c;cin>>a>>b>>c;int s;s=a^b^c;cout<<s<<endl;}return 0;
}

8.Not Quite Latin Square

数学题,要求A,B,C每行每列都只出现一次,其实换个思路就知道整个3X3矩阵中A,B,C每个字母出现次数是固定的3次,于是求和直接判断就行了,剩下的那个字母就是要找出的值。

#include<stdio.h>
int main()
{int t;scanf("%d",&t);getchar();while(t--){int sum=0;int i,j;char line[4];for(i=0;i<3;i++){scanf("%s",line);for(j=0;j<3;j++){if(line[j]>='A')	sum=sum+line[j]-'A';}}printf("%c\n",'A'+9-sum);}return 0;
}

9.Can I Square?

#include<bits/stdc++.h>
using namespace std;
int main()
{int t;cin>>t;while(t--){long long num,ret=0,input;cin>>num;int i;for(i=0;i<num;i++){cin>>input;ret=ret+input;}num=sqrt(ret);if(num*num==ret)	cout<<"YES"<<endl;else	cout<<"NO"<<endl;}	return 0;
}

10.Unnatural Language Processing

#include<bits/stdc++.h>
using namespace std;
int main()
{int t;cin >> t;for (int i = 0; i < t; i++){char q[300000];int n = 0;cin >> n;cin >> q;for (int j = 0; j < n; j++){if ((j+2<n)&&(q[j] == 'a' || q[j] == 'e') && (q[j + 2] == 'a' || q[j + 2] == 'e'))cout << q[j] << '.';else if ((j + 2 < n) && (q[j] == 'b' || q[j] == 'c' || q[j] == 'd') && (q[j + 2] == 'a' || q[j + 2] == 'e'))cout << q[j] << '.';else cout << q[j];}cout << endl;}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/45133.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux设备驱动的并发控制

一、概述 Linux设备驱动中必须解决的一个问题就是多个进程对共享资源(如全局变量、静态变量、硬件资源等)的并发访问&#xff0c;会导致竟态&#xff0c;如可能会出现以下情况&#xff1a;导致执行单元C独处的数据不符合预期 导致竟态发生有如下几种情况&#xff1a; 对称多处…

int类型变量表示范围的计算原理

文章目录 1. 了解2. 为什么通常情况下int类型整数的取值范围是-2147483648 ~ 21474836473. int类型究竟占几个字节4. 推荐 1. 了解 通常情况下int类型变量占4个字节&#xff0c;1个字节有8位&#xff0c;每位都有0和1两种状态&#xff0c;所以int类型变量一共可以表示 2^32 种状…

date 命令学习

文章目录 date 命令学习1. 命令简介2. 语法参数2.1 使用语法2.2 说明2.3 参数说明 3. 使用案例:arrow_right: 星期名缩写 %a:arrow_right: 星期名全写 %A:arrow_right: 月名缩写 %b:arrow_right: 月名全称 %B:arrow_right: 日期和时间 %c:arrow_right: 世纪 %C:arrow_right: 按…

从零开始学习嵌入式---- C高级编译工具

走进编译工具箱&#xff1a;GCC、GDB 和 Make 你是否曾对程序员如何将一行行代码变成可以运行的软件感到好奇&#xff1f;答案就藏在编译工具箱里&#xff01;今天&#xff0c;我们将揭开三个重要工具的神秘面纱&#xff1a;GCC、GDB 和 Make&#xff0c;它们是程序员的左膀右臂…

【全面介绍Oracle】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步! 目录 🎥前言🎥基本概念和安装🎥SQL语言🎥PL/SQL编程🎥数据库…

【计算机组成原理 | 第三篇】各个硬件的组成部分

前言&#xff1a; 在前面的文章中&#xff0c;我们介绍了计算机架构的基本组成。可以知道计算机的基本架构由“存储器”&#xff0c;“运算器”&#xff0c;“控制器”&#xff0c;“输入设备”&#xff0c;“输出设备”这五部分组成。 在这片文章中&#xff0c;我们来深入的了…

【斯坦福因果推断课程全集】2_无混淆和倾向分1

目录 Beyond a single randomized controlled trial Aggregating difference-in-means estimators Continuous X and the propensity score 随机试验的一个最简单的扩展是无约束下的干预效果估计。从定性上讲&#xff0c;当我们想估计一种并非随机的治疗效果&#xff0c;但一…

数列分块<2>

本期是数列分块入门<2>。该系列的所有题目来自hzwer在LOJ上提供的数列分块入门系列。 Blog:http://hzwer.com/8053.html sto hzwer orz %%% [转载] 好像上面的链接↑打不开&#xff0c;放一个转载:https://www.cnblogs.…

tensorflow卷积层操作

全连接NN&#xff1a; 每个神经元与前后相邻层的每一个神经元都有全连接关系。输入是特征&#xff0c;输出为预测结果。 参数个数(前层*后层后层&#xff09; 实际应用时&#xff0c;会先对原始图像进行特征提取&#xff0c;再把提取到的特征送给全连接网络 会先进行若干层提…

在Linux中使用Typora将Markdown文档导出为docx格式

在Linux中使用Typora将Markdown文档导出为docx格式 步骤一&#xff1a;安装Typora 首先&#xff0c;如果你还没有安装Typora&#xff0c;请访问Typora官网下载并安装适用于你操作系统的版本。Typora支持Windows、macOS和Linux系统。 步骤二&#xff1a;编写或打开Markdown文…

C嘎嘎类与对象上篇

类的定义 1. class为定义类的关键字&#xff0c;Stack为类的名字&#xff0c;{}中为类的主体&#xff0c;注意类定义结束时后⾯分号不能省略 。类体中内容称为类的成员&#xff1a;类中的变量称为类的属性或成员变量; 类中的函数称为类的⽅法或者成员函数。 2. C中struct也可以…

【C语言】C语言-学生籍贯信息记录系统(源码+论文)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

apex实现xlsx的解压缩

在 Apex 中解压缩 XLSX 文件需要使用 Salesforce 平台上可用的工具和类。由于 Apex 本身不提供直接处理 ZIP 文件的内置类&#xff0c;你可以使用 Salesforce 的 ZIPpex 库来实现这一功能。ZIPpex 是一个社区驱动的库&#xff0c;用于处理 ZIP 文件的压缩和解压。 以下是使用 …

泛微e-cology getFileViewUrl接口存在SSRF漏洞复现 [附POC]

文章目录 泛微e-cology getFileViewUrl接口存在SSRF漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现0x06 修复建议泛微e-cology getFileViewUrl接口存在SSRF漏洞复现 [附POC] 0x01 前言 免责声明:请勿利用文章…

【密码学】哈希函数与加密算法的关系

一、哈希函数的定义 哈希函数&#xff08;Hash Function&#xff09;&#xff0c;也被称为散列函数或杂凑函数&#xff0c; 是一种将任意长度的输入数据&#xff08;通常称为“预映射”或“消息”&#xff09;转换为固定长度输出&#xff08;通常称为“哈希值”、“散列值”、“…

PHP红包拓客微信小程序系统源码

&#x1f389;红包狂欢&#xff0c;客源滚滚来&#xff01;红包拓客微信小程序&#xff0c;营销新利器&#x1f680; &#x1f9e7;一、创意红包&#xff0c;吸引眼球 你还在为如何吸引顾客而烦恼吗&#xff1f;红包拓客微信小程序来帮你&#xff01;&#x1f381; 它以创意红…

基于jeecgboot-vue3的Flowable流程-集成仿钉钉流程(六)仿钉钉流程的转bpmn流程图

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 1、转bpmn流程图接口 /*** 转为bpmn xml格式* param processModel* throws IOException*/PostMapping("/ddtobpmnxml")public Result<?> ddToBpmnXml(RequestBody Proce…

TIA博途Wincc中画箭头和管道的具体方法示例

TIA博途Wincc中画箭头和管道的具体方法示例 如何画箭头? 如下图所示,在右侧的工具箱中找到基本对象—线,点击选中, 如下图所示,在画面中添加一条线段,然后右键进入该线段的属性,设置线的外观: 宽度、样式、颜色; 线端:这里可以选择起始和结束的样式,选择“箭头”,则…

自闭症孩子能否正常上普校:一场充满挑战与希望的探讨

在教育的舞台上&#xff0c;自闭症孩子​​​​​​​能否正常融入普通学校&#xff0c;是一个备受关注且充满争议的话题。 支持自闭症孩子上普校的观点认为&#xff0c;普通学校能为他们提供更接近真实社会的环境。在普校中&#xff0c;自闭症孩子有机会与不同类型的同学交流互…

Linux 之前的 Unix 桌面沉浮启示录

It takes more than open source, it takes open standards and consensus 仅仅开源还不足以实现开放&#xff0c;还需开放标准和建立共识 Steven J. Vaughan-Nichols Sat 27 Jan 2024 // 12:33 UTC 现在&#xff0c;由于有了安卓和 ChromeOS&#xff0c;Linux 已成为重要的终端…