蓝桥试题集-基础练习-BASIC-18~21-矩阵面积交-完美的代价-数的读法-Sine之舞_H_chen*的博客-程序员秘密

技术标签: c++  蓝桥杯  

BASIC-18 矩阵面积交

资源限制

时间限制:1.0s 内存限制:512.0MB

问题描述

平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。

输入格式

输入仅包含两行,每行描述一个矩形。 在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。

输出格式

输出仅包含一个实数,为交的面积,保留到小数后两位。

样例输入

1 1 3 3
2 2 4 4

样例输出

1.00

题解:

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main(){
    
	double ans;
	double x1,x2,x3,x4,y1,y2,y3,y4;
	cin>>x1>>y1>>x2>>y2;
	cin>>x3>>y3>>x4>>y4;
	if(x1>x2)
		swap(x1,x2);
	if(x3>x4)
		swap(x3,x4);
	if(y1>y2)
		swap(y1,y2);
	if(y3>y4)
		swap(y3,y4);
	double min_x = max(x1,x3);
	double max_x = min(x2,x4);
	double min_y = max(y1,y3);
	double max_y = min(y2,y4);
	double x = max_x - min_x;
	double y = max_y - min_y;
	if(x < 0 || y < 0)
		ans = 0;
	else
		ans = x*y;
	printf("%.2f",ans);
	return 0;
} 

BASIC-19 完美的代价

资源限制

时间限制:1.0s 内存限制:512.0MB

问题描述

回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的。小龙龙认为回文串才是完美的。现在给你一个串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串。
交换的定义是:交换两个相邻的字符 例如mamad 第一次交换 ad : mamda 第二次交换 md : madma 第三次交换 ma :
madam (回文!完美!)

输入格式

第一行是一个整数N,表示接下来的字符串的长度(N <= 8000) 第二行是一个字符串,长度为N.只包含小写字母

输出格式

如果可能,输出最少的交换次数。 否则输出Impossible

样例输入

5
mamad

样例输出

3

题解:

#include <iostream>
#include<string>
using namespace std;
int main()
{
    
    int N;
    string s;
    cin >> N >> s;
    int ans = N - 1,step = 0;
    bool flag = false;
    for (int i = 0; i < ans; i++){
    
        for (int j = ans; j >= i; j--){
    
            if (i == j){
    
                if (N % 2 == 0 || flag == true){
    
                    cout << "Impossible";
                    return 0;
                }
                flag = true;
                step += N / 2 - i;
            }
            else if (s[i] == s[j]){
    
                for (int k = j; k < ans; k++){
    
                    swap(s[k], s[k + 1]);
                    step++;
                }
                ans--;
                break;
            }
        }
    }
    cout << step;
    return 0;
}

BASIC-20 数的读法

资源限制

时间限制:1.0s 内存限制:512.0MB

问题描述

Tom教授正在给研究生讲授一门关于基因的课程,有一件事情让他颇为头疼:一条染色体上有成千上万个碱基对,它们从0开始编号,到几百万,几千万,甚至上亿。
比如说,在对学生讲解第1234567009号位置上的碱基时,光看着数字是很难准确的念出来的。 所以,他迫切地需要一个系统,然后当他输入12
3456 7009时,会给出相应的念法: 十二亿三千四百五十六万七千零九 用汉语拼音表示为 shi er yi san qian si bai wu shi liu wan qi qian ling jiu 这样他只需要照着念就可以了。
你的任务是帮他设计这样一个系统:给定一个阿拉伯数字串,你帮他按照中文读写的规范转为汉语拼音字串,相邻的两个音节用一个空格符格开。
注意必须严格按照规范,比如说“10010”读作“yi wan ling yi shi”而不是“yi wan ling shi”,“100000”读作“shi wan”而不是“yi shi wan”,“2000”读作“er qian”而不是“liang qian”。

输入格式

有一个数字串,数值大小不超过2,000,000,000。

输出格式

是一个由小写英文字母,逗号和空格组成的字符串,表示该数的英文读法。

样例输入

1234567009

样例输出

shi er yi san qian si bai wu shi liu wan qi qian ling jiu

题解:

#include <iostream>
using namespace std;
int main()
{
    
    string s;
    cin >> s;
    string a[10] = {
     "ling","yi","er","san","si","wu","liu","qi","ba","jiu" };
    string b[10] = {
     " ","shi","bai","qian","wan","shi","bai","qian","yi","shi" };
    for (int i = 0; i < s.length(); i++) {
    
        int n = s[i] - '0', len = s.length();
        if (!n) {
    //在0的情况下
            if (len - i == 5 || len - i == 9)
                cout << b[len - i - 1] << " ";//输出万和亿
            if (len - i != 1 && s[i + 1] != '0')//不是最后一位 后面的数不是0
                cout << "ling ";
        }
        else if ((len == 2 || len == 6 || len == 10) && n == 1 && i == 0)
            cout << "shi ";
        else
            cout << a[n] << " " << b[len - i - 1] << " ";
    }
    return 0;
}

BASIC-21 Sine之舞

资源限制

时间限制:1.0s 内存限制:512.0MB

问题描述

最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功。所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶牛们的计算能力。
不妨设 An=sin(1–sin(2+sin(3–sin(4+…sin(n))…)
Sn=(…(A1+n)A2+n-1)A3+…+2)An+1
FJ想让奶牛们计算Sn的值,请你帮助FJ打印出Sn的完整表达式,以方便奶牛们做题。

输入格式

仅有一个数:N<201。

输出格式

请输出相应的表达式Sn,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。

样例输入

3

样例输出

((sin(1)+3)sin(1–sin(2))+2)sin(1–sin(2+sin(3)))+1

题解:

#include<iostream>
using namespace std;
void an(int n) {
    
    int m = 1;
    while (m <= n) {
    
        if (m >= 2) {
    
            if (m % 2)
                cout << "+";
            else
                cout << "-";
        }
        cout << "sin(" << m++;
    }
    m = 0;
    while (m < n) {
    
        cout << ")";
        m++;
    }
}
void sn(int n) {
    
    int m = 1, t = n;
    while (m < n) {
    
        cout << "(";
        m++;
    }
    m = 1;
    while (m < n) {
    
        an(m++);
        cout << "+" << t-- << ")";
    }
}
int main() {
    
    int n;
    cin >> n;
    sn(n);
    an(n);
    cout << "+1";
    return 0;
}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_54233803/article/details/113849809

智能推荐

urllib3如何安装的三种办法_安装urllib3_Taxus_shan的博客-程序员秘密

在《如何安装Python+selenium环境+Chrome》文章中详细说明了如何安装selenium,但是在没有网络的情况下,我们下载离线selenium安装包,手动执行安装后,可能会出现运行失败的情况。如:我在使用中就遇到了这样的问题。我是自己电脑可以联网,公司电脑不能连外网,而且在自己电脑上已经安装了selenium+Python环境,可以正常使用,同样的方式在公司电脑上安装Pytho...

Linux服务器上测试TCP/UDP端口的连通性_linux测试udp端口命令-程序员秘密

测试tcp端口的连通性:使用nc命令来测试udp端口的连通性:使用nc命令来测试tcp端口的连通性:

十年前范雅各布森关于bufferbloat的讨论_dog250的博客-程序员秘密

周末下雨,在家扒拉了几篇10年前的论文。我主要是有个疑问,BBR真的是Von Jacobson的idea吗?毕竟论文作者有他的名字,我想知道范雅各布森在BBR里的角色是什么。但我没有找到。不过还是挖出一些有趣的东西。2011年的一篇论文《BufferBloat: What’s Wrong with the Internet?》:https://queue.acm.org/detail.cfm?id=2076798这一篇是一个关于bufferbloat的讨论,我摘录了其中有趣的一些段落。配置大bu

web端js调用window.print()的回调函数(打印前和打印后的回调)_浏览器打印确认和取消的回调函数_刺心疯的博客-程序员秘密

$(function () { //定义打印前事件 var beforePrint = function () { console.log("打印前"); }; //定义打印后事件 var afterPrint = function () { console.log("打印后"); app.post('b...

NVIDIA deepstream 6.0 python apps 样例test1模型代码解读_deepstream test1_车大划水冠军%的博客-程序员秘密

对deepstream提供的python案例中test1的代码进行解读,尝试理解视频流检测的流程。

PhpStorm,IDEA使用GitLab_phpstorm gitlab_weixin_42484542的博客-程序员秘密

PHPStorm和IDEA的方式是一样的。GitLab如果注册不了的请用GitHub注册登录也是可以的。 不用GitHub是因为GitLab是免费的并且可以免费创建私有项目准备---&amp;gt;先下载GitLab的插件 File-&amp;gt;Settings-&amp;gt;Plugins-&amp;gt;Browse Repositories下载安装完后会提示重新启动PHPStorm重新启动后会...

随便推点

ZZULI - 程序员的背包(最长上升子序列+二分优化)_ityanger的博客-程序员秘密

题目链接:http://acm.zzuli.edu.cn/problem.php?id=2485时间限制: 1 Sec  内存限制: 256 MB题目描述众所周知,每个程序员都有一个背包,里边装着笔记本电脑(才不是为了随时改bug呢),耳机,移动电源,switch等。现在,L同学有一个背包,这个背包比较奇特,首先它的空间特别大,其次呢,它装东西要遵循一个规则:装的东西的重量只能递增。毕竟...

Ubuntu 16.04 + ROS Kinetic 学习镜像_Hello-12345的博客-程序员秘密

Ubuntu 16.04 + ROS Kinetic 学习镜像2017年01月20日 Other 评论 7 条 阅读 6,423 次版权声明:本文为zhangrelay原创文章, 转载请注明,谢谢...转载:http://blog.exbot.net/archives/2972    Ubuntu 16.04 + ROS Kinetic 镜像

个人博客记录_忘you的博客-程序员秘密

想了很久,还是决定养成记录自己学习工作的一些心得。

oracle_sql创建和删除表空间、数据库、用户_流云风的博客-程序员秘密

查看1、查看表空间的名称及大小  select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name group by t.tablespace_name; 

[摘录]第一章 华为高效执行密码_weixin_34233618的博客-程序员秘密

01.保持强烈的忧患意识(1).危机激发斗志;(2).对成功视而不见;02.人人都要成为奋斗者(1).迎难而上;(2).先苦后甜;(3).以勤补拙;(4).继续艰苦奋斗;03.用“三高政策”催生行动力(1).高工资催生高效率;(2).高工资带来高压力;(3).高压力激发高效率;04.务实务虚并存,发挥机制优势(1).务实出成效;(2).专注于本职工作;(3).小改进,大奖励;(4).虚实结合[基层...

MAC VMWare Fusion网络设置_nciasd的博客-程序员秘密

查看主机的IP网段(我在房东的网络下接了路由器),192.168.28.117。修改/Library/Preferences/VMware Fusion/vmnet8目录下的nat.conf文件 网关的设置要两个配置文件相同,一般为28.2的ip,其它的配置的IP需要更改。 一般换了网络环境以后,VMware内的虚拟机设置为固定IP的,以NAT方式与主机共享的网络需要重新进行设置。DNS设置

推荐文章

热门文章

相关标签