PTA A1009&A1010
第五天
A1009 Product of Polynomials (25 分)
题目内容
This time, you are supposed to find A×B where A and B are two polynomials.
Input Specification:
Each input file contains one test case. Each case occupies 2 lines, and each line contains the information of a polynomial:
K N1 aN1 N2 aN2... NKaNK
where K is the number of nonzero terms in the polynomial, Niand aNi(i=1,2,⋯,K) are the exponents and coefficients, respectively. It is given that 1≤K≤10,0≤NK<⋯<N2<N1≤1000.
Output Specification:
For each test case you should output the product of A and B in one line, with the same format as the input. Notice that there must be NO extra space at the end of each line. Please be accurate up to 1 decimal place.
Sample Input:
2 1 2.4 0 3.2
2 2 1.5 1 0.5
Sample Output:
3 3 3.6 2 6.0 1 1.6
单词
product
英 /'prɒdʌkt/ 美 /'prɑdʌkt/
n. 产品;结果;[数] 乘积;作品
题目分析
多项式相乘,类似于A1002的多项式相加,之前也写过用的开结构体数组的方法,很笨,所以用之前在A1002学到的开一个数组,用下标代表指数,对应元素代表系数的方式来存,不过因为是乘法所以要多开两个数组把数据临时保存一下。代码如下。
具体代码
#include<stdio.h>
#include<stdlib.h> double p1[1001];
double p2[1001];
double res[2002];
int N, M;
int main(void)
{
scanf("%d", &N);
for (int i = 0; i = 0; i--)
{
if (res[i] != 0)
printf(" %d %0.1f", i, res[i]);
}
system("pause");
}
A1010 Radix (25 分)
题目内容
Given a pair of positive integers, for example, 6 and 110, can this equation 6 = 110 be true? The answer is yes, if 6 is a decimal number and 110 is a binary number.
Now for any pair of positive integers N1 and N2, your task is to find the radix of one number while that of the other is given.
Input Specification:
Each input file contains one test case. Each case occupies a line which contains 4 positive integers:
N1 N2 tag radix
Here N1 and N2 each has no more than 10 digits. A digit is less than its radix and is chosen from the set { 0-9, a-z } where 0-9 represent the decimal numbers 0-9, and a-z represent the decimal numbers 10-35. The last number radix is the radix of N1 if tag is 1, or of N2 if tag is 2.
Output Specification:
For each test case, print in one line the radix of the other number so that the equation N1 = N2 is true. If the equation is impossible, print Impossible. If the solution is not unique, output the smallest possible radix.
Sample Input:
6 110 1 10
Sample Output:
2
单词
radix
英 /'rædɪks; 'reɪ-/ 美 /'redɪks/
n. 根;[数] 基数
n. (Radix)人名;(法、德、西)拉迪克斯;(英)雷迪克斯
decimal
英 /'desɪm(ə)l/ 美 /'dɛsɪml/
n. 小数
adj. 小数的;十进位的
题目分析
从9点做到11点多,巨坑,第一次是默认最大基数为36,部分通过,找不到bug很懵,上网查了一会儿看了一些博客才知道,最大的基数不一定是36,可以非常的大,最大值应该是已经算出的值+1,由于数据可以非常的大,所以int的数据大小肯定是不够了,而且用暴力方法遍历查找,必然会超时,这时候就要用二分查找,于是把之前写的全删掉重新写了个二分查找的代码,调试完依然有几个无法通过,于是把自己的代码和别人已经AC的代码对比,发现大佬的代码中在二叉搜索时多了一个判断条件,即算出的值需要判断是否小于0,这是因为如果数字实在太大甚至超过了long long的范围,那么这时我们去另一半继续找基数,我对这里有一点疑惑,如果数据真的特别大,或者基数卡在溢出和mid中间,那么这个方法可能找不到,可是数据又是无限的,所以这个问题深究起来可能是无解的(这么看来这好像是个数学问题,不知道有没有大佬能证明出来这道题到底有没有通解)。最后的最后,大家在开字符数组的时候一定记得要加一。。。。。
对了,关于把字符串转换成数字的问题,我之前一直用的是算出数组长度,减一后用math.h里的pow算出每个进位的值后一个一个加,今天看了大佬的代码,发现了一种更简洁的方法:
int sum=0;
while(\*p != '\0')
{
int n = convert(\*p);
sum = sum \* radix + n;
p++;
}
具体代码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAXSIZE 11char s1[MAXSIZE];
char s2[MAXSIZE];
int tag;
long long radix;
long long result;
long long int finalradix;int convert(char a)
{
if (a >= '0'&&a max)
max = f;
p++;
}
return max + 1;
}long long binary_search(long long result,char *s,long long rmin,long long rmax)
{
while (rmin result || n参考博客
【笨方法学PAT】1010 Radix(25 分)
1010 Radix (25 分)
*甲级PAT 1010 Radix(二分搜索+坑)
1010 Radix (25 分)C++实现-终于AC了PTA A1009&A1010的更多相关文章
- 浙大PTA - - 堆中的路径
题目链接:https://pta.patest.cn/pta/test/1342/exam/4/question/21731 本题即考察最小堆的基本操作: #include "iostrea ...
- 浙大PTA - - File Transfer
题目链接:https://pta.patest.cn/pta/test/1342/exam/4/question/21732 #include "iostream" #includ ...
- ERROR<53761> - Plugins - conn=-1 op=-1 msgId=-1 - Connection Bind through PTA failed (91). Retrying...
LDAP6.3在DSCC控制台启动实例完成,但是操作状态显示“意外错误”,查看日志如下: 04/May/2016:21:10:39 +0800] - Sun-Java(tm)-System-Direc ...
- PTA中提交Java程序的一些套路
201708新版改版说明 PTA与2017年8月已升级成新版,域名改为https://pintia.cn/,官方建议使用Firefox与Chrome浏览器. 旧版 PTA 用户首次在新版系统登录时,请 ...
- PTA分享码-Java
主要用于Java语法练习,非竞赛类题目. 1. Java入门 959dbf0b7729daa61d379ec95fb8ddb0 2. Java基本语法 23bd8870e ...
- C语言第一次实验报告————PTA实验1.2.3内容
一.PTA实验作业 题目1.温度转换 本题要求编写程序,计算华氏温度100°F对应的摄氏温度.计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型. 1.实验代 ...
- PTA题---求两个有序序列中位数所体现的思想。
---恢复内容开始--- 近日,在做PTA题目时,遇到了一个这样的题,困扰了很久.题目如下:已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数.有序序列A0,A1, ...
- 第十四,十五周PTA作业
1.第十四周part1 7-3 #include<stdio.h> int main() { int n; scanf("%d",&n); int a[n]; ...
- 第七周PTA作业
第一题: #include<stdio.h> int main() { ; ; ){ sum=sum+i; i++; } printf("sum = %d\n",sum ...
随机推荐
- 项目启动会(project initiating meeting)与项目开工会(kick-off meeting)区别
一.项目启动会initiating meeting 召开时间:是启动阶段结束时召开的会议:主要任务:发布项目章程,并任命项目经理,赋予项目经理动用组织资源的权力:注意事项:(1)会议召开前已经对干系人 ...
- Greenplum数据库分享
1. 场景描述 最近做了次Greenplum数据库的分享,如下图,把第三章的的架构介绍简单提出来,分享下. 2. 解决方案 就按照ppt贴图了,部分内容稍微做了下马赛克. (这页ppt的下半部分,有实 ...
- 图数据库 Nebula Graph 的数据模型和系统架构设计
Nebula Graph:一个开源的分布式图数据库.作为唯一能够存储万亿个带属性的节点和边的在线图数据库,Nebula Graph 不仅能够在高并发场景下满足毫秒级的低时延查询要求,而且能够提供极高的 ...
- 玩转VSCode插件之Remote-SSH
前言 每当更换电脑就要从新搭建一遍开发环境... 每当拉完最新代码程序在本地跑不起来的时候就要检查服务器和开发电脑的环境... 每当服务器上出Bug的时候就想如果可以能够调试服务器代码多好啊.. 你是 ...
- GC回收算法&&GC回收器
GC回收算法 什么是垃圾? 类比日常生活中,如果一个东西经常没被使用,那么就可以说是垃圾. 同理,如果一个对象不可能再被引用,那么这个对象就是垃圾,应该被回收. 垃圾:不可能再被引用的对象. fina ...
- 2016 ACM-ICPC 青岛站网络赛G题 题解
[参考博客][https://blog.csdn.net/Tawn0000/article/details/82255682] 题意: 将n个数按照每k个一组来合并,合并需要花费的cost是两个数的长 ...
- .NET Core ASP.NET Core Basic 1-2 控制反转与依赖注入
.NET Core ASP.NET Core Basic 1-2 本节内容为控制反转与依赖注入 简介 控制反转IOC 这个内容事实上在我们的C#高级篇就已经有所讲解,控制反转是一种设计模式,你可以这样 ...
- 深度好文,springboot启动原理详细分析
我们开发任何一个Spring Boot项目,都会用到如下的启动类 1 @SpringBootApplication 2 public class Application { 3 public stat ...
- 【Offer】[62] 【圆圈中最后剩下的数字】
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 0,1,,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的最后一个数字. 牛客网刷题地址 ...
- Mac环境IntelliJ IDEA配置JDK提示The selected directory is not a valid home for JDK
笔者使用mac配置如下: 硬件环境:MacBook Pro 操作系统:MacOS Sierra 10.13.6 开发工具:IntelliJ IDEA 2016.x JDK版本:已有Open JDK 8 ...