[CSP-J 2023] 一元二次方程(模拟)

news2024/10/26 2:09:14

变态的大模拟……

洛谷题目传送门icon-default.png?t=O83Ahttps://www.luogu.com.cn/problem/P9750

解题思路

主要还是模拟,题目让你求啥你就求啥,要注意细节。

然后化简根式的可以用质因数分解一下即可。

代码

#include<bits/stdc++.h>
using namespace std;
#define int long long
int q,n;
int aabs(int x)//绝对值 
{
	if(x<0)return -x;
	return x;
}
int cnt[1001];
int delta;
int qpow(int a,int b)//快速幂 
{
	int res=1;
	while(b)
	{
		if(b&1)
			res*=a;
		a*=a;
		b>>=1; 
	}
	return res;
}
int calc(int del)//质因数分解化简根式 
{
	memset(cnt,0,sizeof cnt);
	int res=1;
	int temp=del;
	vector<int> ttt;
	for(int i=2;i<=temp;i++)
	{
		if(temp%i==0)
		{
			while(temp%i==0)
			{
				cnt[i]++;
				temp/=i;
				
			}
			ttt.push_back(i);
		}
	}
	del=1;
	for(auto i:ttt)
	{
		if(cnt[i]%2)//处理分解的因数 
		{
			del*=i;
			cnt[i]--;
		}
		if(cnt[i]%2==0)
		{
			res*=qpow(i,cnt[i]/2);
		}
	}
	delta=del;
	return res;
}
signed main()
{
//	freopen("P9750_4.in","r",stdin);
//	freopen("aa.out","w",stdout);
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	
	cin>>q>>n;
	int a,b,c;
	int temp,fz,fm,g;
	int fz2,fm2;
	int q1,q2,r;
	while(q--)
	{
		cin>>a>>b>>c;
		delta=b*b-4*a*c;
		if(delta<0)//delta小于0,无解 
		{
			cout<<"NO"<<endl;
			continue;
		}
		temp=sqrt(delta);
		if(temp*temp==delta)//若有有理数解 
		{
			fz=-b+temp;
			fz2=-b-temp;
			fm=2*a;
			if(fz2*fm>fz*fm)//题目说了,要取较大的解 
				fz=fz2;
			g=__gcd(aabs(fz),aabs(fm));
			fz/=g;
			fm/=g;
			if(aabs(fm)==1)
			{
				if(fz*fm>=0)
					cout<<aabs(fz);
				else
					cout<<"-"<<aabs(fz);
			}
				
			else{
				if(fz*fm<0)
					cout<<"-"<<aabs(fz)<<"/"<<aabs(fm);
				else
					cout<<aabs(fz)<<"/"<<aabs(fm);
			}
		}
		else{//没有有理数解 
			fz=-b;
			fm=2*a;
			g=__gcd(aabs(fz),aabs(fm));
			fz/=g;
			fm/=g;
			if(fz)
			{
				if(aabs(fm)==1)
				{
					if(fz*fm>0)
						cout<<aabs(fz);
					else
						cout<<"-"<<aabs(fz);
				}
				
				else{
					if(fz*fm<0)
						cout<<"-"<<aabs(fz)<<"/"<<aabs(fm);
					else
						cout<<aabs(fz)<<"/"<<aabs(fm);
				}
				cout<<"+";
			}
			
			q2=calc(delta);
			double t=q2/double(2*a);
			int t2=t;
			if(t-t2==0)
			{
				if(aabs(t2)==1)
					cout<<"sqrt("<<delta<<")";
				else
					cout<<aabs(t2)<<"*sqrt("<<delta<<")";
			}
			else
			{
				t=1/t;
				t2=t;
				if(t-t2==0)
					cout<<"sqrt("<<delta<<")/"<<aabs(t2);
				else{
					fz=q2;
					fm=2*a;
					g=__gcd(aabs(fz),aabs(fm));
					fz/=g;
					fm/=g;
					if(aabs(fz)==1)
					{
						cout<<"sqrt("<<delta<<")/"<<aabs(fm);
					 } 
					else
						cout<<aabs(fz)<<"*sqrt("<<delta<<")/"<<aabs(fm);
				}
			}
		}
		cout<<endl;
	}
}

最后,祝各位大佬 csp2024 rp++!

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

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

相关文章

opencv 图像翻转- python 实现

在做图像数据增强时会经常用到图像翻转操作 flip。 具体代码实现如下&#xff1a; #-*-coding:utf-8-*- # date:2021-03 # Author: DataBall - XIAN # Function: 图像翻转import cv2 # 导入OpenCV库path test.jpgimg cv2.imread(path)# 读取图片 cv2.namedWindow(image,1) …

C++基础与实用技巧第三节:内存管理与性能优化

第二章&#xff1a;C基础与实用技巧 第三节&#xff1a;内存管理与性能优化 1. 动态内存的管理策略与技巧 动态内存管理是C编程的核心部分之一&#xff0c;合理管理内存可以极大提高程序的性能和稳定性。在C中&#xff0c;动态内存的分配和释放通常使用new和delete运算符&am…

LeetCode_2427. 公因子的数目_java

1、题目 2427. 公因子的数目https://leetcode.cn/problems/number-of-common-factors/ 给你两个正整数 a 和 b &#xff0c;返回 a 和 b 的 公 因子的数目。 如果 x 可以同时整除 a 和 b &#xff0c;则认为 x 是 a 和 b 的一个 公因子 。 示例 1&#xff1a; 输入&#x…

基于springboot企业微信SCRM管理系统源码带本地搭建教程

系统是前后端分离的架构&#xff0c;前端使用Vue2&#xff0c;后端使用SpringBoot2。 技术框架&#xff1a;SpringBoot2.0.0 Mybatis1.3.2 Shiro swagger-ui jpa lombok Vue2 Mysql5.7 运行环境&#xff1a;jdk8 IntelliJ IDEA maven 宝塔面板 系统与功能介绍 基…

实现prometheus+grafana的监控部署

直接贴部署用的文件信息了 kubectl label node xxx monitoringtrue 创建命名空间 kubectl create ns monitoring 部署operator kubectl apply -f operator-rbac.yml kubectl apply -f operator-dp.yml kubectl apply -f operator-crd.yml # 定义node-export kubectl app…

RHCE的练习(4)

多端口访问多网站 第一步&#xff1a; 关闭防火墙&#xff08;因为要与外部连接访问&#xff09; [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0第二步&#xff1a; 创建新IP地址&#xff08;用于区分&#xff09; [rootlocalhost ~]# nmcli…

【南方科技大学】CS315 Computer Security 【Lab6 IoT Security and Wireless Exploitation】

目录 Introduction (Part 1: OS Security for IoT )Software RequirementsStarting the Lab 6 Virtual MachineSetting up the Zephyr Development EnvironmentDownload the Zephyr Source CodeInstalling Requirements and DependenciesSetting the Project’s Environment Va…

PoissonRecon学习笔记

1. Screened Poisson Reconstruction (SPR) 源码&#xff1a;https://github.com/mkazhdan/PoissonRecon However, as noted by several researchers, it suffers from a tendency to over-smooth the data. 泊松重建存在过度平滑的现象。 方法&#xff1a;position and gradi…

为Windows Terminal 配置zsh + Oh-My-Zsh!

参考&#xff1a; 为Windows Terminal 配置zsh Oh-My-Zsh! [非WSL] https://zhuanlan.zhihu.com/p/625583037 Package: zsh - MSYS2 Packages 安装配置 1、安装 Windows Terminal(必须) Method 1: 打开 Microsoft Store&#xff0c;搜索 “Windows Terminal”。点击 “…

Web应用框架-Django应用基础

1. 认识Django Django是一个用Python编写的开源高级Web框架&#xff0c; 旨在快速开发可维护和可扩展的Web应用程序。 使用Django框架的开发步骤&#xff1a; 1.选择合适的版本 2.安装及配置 3.生成项目结构 4.内容开发 5.迭代、上线、维护 Django官网&#xff1a; Djang…

开源表单生成器OpnForm

什么是 OpnForm &#xff1f; OpnForm 是一个开源的表单构建工具&#xff0c;旨在简化创建自定义表单的过程&#xff0c;特别适合无编码知识的用户。它通过人工智能优化表单创建流程&#xff0c;支持多种用途&#xff0c;如联系人表单、调查表等。OpnForm 提供了一个直观的拖放…

最优化方法-无约束优化算法(最速下降法)matlab实现

一、前言 最速下降法 &#xff0c;又称为梯度法&#xff0c;是一种无约束求解多元函数极小值的方法。最速下降法的起源可以追溯到19世纪&#xff0c;最早由数学家Cauchy在1847年提出。随着计算机技术的发展&#xff0c;最速下降法在20世纪50年代逐渐应用于各种优化问题&#x…

BD数字化装备车场:RFID技术的突破之道

传统的车库管理流程主要依赖手工方式&#xff0c;这无疑降低了作业效率&#xff0c;尤其在任务高峰期或紧急情况下&#xff0c;车库进出口的交通堵塞问题尤为突出。随着2023年的到来&#xff0c;我国相继发布了《交通强国建设纲要》与《数字中国建设整体布局规划》等关键政策文…

Uni-App-01

HBuilder安装卸载 安装 下载HBuilder最新版 解压到安装目录&#xff0c;路径中不要有中文和空格 在桌面上增加快捷方式 卸载 执行reset.bat 删除HBuilder文件夹&#xff08;如果提示文件被占用&#xff0c;杀死相关进程再删除&#xff09; 夜神模拟器安装 安装 下…

Flutter项目打包ios, Xcode 发布报错 Module‘flutter barcode_scanner‘not found

报错图片 背景 flutter 开发的 apple app 需要发布新版本&#xff0c;但是最后一哆嗦碰到个报错&#xff0c;这个小问题卡住了我一天&#xff0c;之间的埪就不说了&#xff0c;直接说我是怎么解决的&#xff0c;满满干货 思路 这个报错 涉及到 flutter_barcode_scanner; 所…

智能园艺:Spring Boot植物健康系统

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理植物健康系统的相关信息成为必然。开发合适…

《面向对象系统分析与设计》三级项目

文章目录 一、项目总体要求<设计模式应用>第一次文档要求第二次文档要求 二、示例第一次文档 - 设计原则应用1、题目描述2、设计:(1&#xff09;优化理由陈述(2&#xff09;类图(3)实现代码 第二次文档 - 设计模式应用1、题目描述2、设计:(1) 优化理由陈述(2&#xff09;…

PostGis空间(下):空间连接与空间索引

目录 1、简介2、空间连接3、空间索引3.1 索引操作3.2 空间索引的工作原理3.2.1 R-Tree 3.3 空间索引函数3.4 仅索引查询3.5 ANALYZE3.6 VACUUMing3.7 函数列表 PS 1024到啦&#xff01;&#xff01;&#xff01; 先祝各位程序员或者想成为程序员正在奋斗中的伙伴1024程序员节快…

pdf免费压缩软件 pdf文件压缩免费软件 软件工具方法

pdf文件压缩免费软件&#xff1f;对于提升日常工作效率至关重要。在繁忙的工作流程中&#xff0c;寻找一种既高效又合适的压缩策略显得尤为重要。那么&#xff0c;我们该如何优化工作流程呢&#xff1f;在职场中&#xff0c;良好的开端是制定一套清晰的工作方案。只有明确了目标…

Konva 组,层级

代码&#xff1a; <template><div class"rect"><div class"header"> <!-- <el-button type"primary" click"show">展示</el-button>--> <!-- <el-button type"success&quo…