暑假算法练习Day5
咕咕了好几天哈哈哈哈,因为这几天在忙一些其他事(bushi ,好吧其实就是自己太懒啦,从今天开始继续每天的算法练习
1010 一元多项式求导 (25 分)
设计函数求一元多项式的导数。(注:\(x^n\)(\(n\)为整数)的一阶导数为\(nx^{n−1}\)。)
输入格式:
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。
输出格式:
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为
0 0。
输入样例:
3 4 -5 2 6 1 -2 0
输出样例:
12 3 -10 1 6 0
解题分析及代码:
这一题看起来很简单,但是其实还是存在着几个坑的,害得我整整调了快1个小时。我们需要注意四点:
- 对于“零多项式”,我们最终结果因输出为
0 0。其实不止零多项式,对于如1 0等输入,我们最终结果都需要输出0 0,因此在输出时应对输入多项式的第一项的系数进行判断,若为0,则直接输出0 0。- 对于输出格式的判断,这个我搞了很久,因为测试点3一直显示格式错误,最后发现对于
3 4 0 0这样输入的例子,我最终输出时末尾会有多余空格,所以在输出时一定要注意格式的输出。- 在输出时,若当前项的系数为0,不要输出。
- 在此题中对于输入结束的判断不应该仅局限于判断多项式的最后一项是否为0,如果这样写,测试点1就会显示超时。还是要用到Day4中提到的while判断的方法来判断输入是否结束。当然,在本地测试的话,mac系统是使用
control+C来结束输入,win系统的话应为Ctrl+Z。
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <cmath>
using namespace std;
int p[1005]={0};
int main() {
int n;
int a,b;
cin >> a >> b;
n=b;
if(b!=0)p[b-1]+=a*b;
while(cin >> a >> b){
if(b!=0) p[b-1]+=a*b;
}
if(n==0){
cout <<"0 0"<<endl;
return 0;
}
cout << p[n-1] <<" " <<n-1;
if(n-2<0) return 0;
for(int i=n-2;i>=0;i--){
if(p[i]!=0)
cout <<" " <<p[i] <<" " <<i;
if(i==0) cout << endl;
}
return 0;
}
还有一个更加简略的解答。
int main() {
int a, b, flag = 0;
while (cin >> a >> b) {
if (b != 0) {
if (flag == 1) cout << " ";
cout << a * b << " " << b - 1;
flag = 1;
}
}
if (flag == 0) cout << "0 0";
return 0;
}
1011 A+B 和 C (15 分)
给定区间 \([−2^{31},2^{31}]\)内的 3 个整数 \(A、B\)和\(C\),请判断\(A+B\)是否大于\(C\)。
输入格式:
输入第 1 行给出正整数 \(T\) (≤10),是测试用例的个数。随后给出 T 组测试用例,每组占一行,顺序给出。\(A、B\)和\(C\)整数间以空格分隔。
输出格式:
对每组测试用例,在一行中输出
Case #X: true如果 \(A+B>C\),否则输出Case #X: false,其中X是测试用例的编号(从 1 开始)。
输入样例:
4
1 2 3
2 3 4
2147483647 0 2147483646
0 -2147483648 -2147483647
输出样例:
Case #1: false
Case #2: true
Case #3: true
Case #4: false
解题分析及代码:
本题唯一需要注意的就是A、B、C的范围,因此在定义时我们需定义为
long long类型(\([−2^{31},2^{31}-1]\))并且还需注意的是,不能将A和B加起来再和C进行判断,相反需采用减法运算,将C减去A或B,再与B或A进行比较,否则会出现爆精度的问题,当然Python请随意哈哈哈哈哈哈哈。
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <cmath>
using namespace std;
long long a,b,c;
int main() {
int n;
cin >> n;
for(int i=1;i<=n;i++){
int flag=0;
cin >> a >> b >> c;
c-=a;
if(c<b) flag=1;
if(flag==1) cout <<"Case #"<<i<<": true"<<endl;
else cout <<"Case #"<<i<<": false"<<endl;
}
return 0;
}
暑假算法练习Day5的更多相关文章
- 暑假算法练习Day1
为了加强个人的算法能力,所以准备每天都做适当的算法练习,并在隔天加以回顾. 依托PTA.Leetcode平台进行训练(暂定每天三题C++,对于Leetcode平台上的练习,由于其解题需以类的形式进行提 ...
- 算法学习--Day5
其实今天是第六天,不过昨天写的题目有些杂乱,都是贪心的算法,所以昨天的题目就不放上来了. 今天开始入手数据结构吧啦吧啦.. 数据结构当时学的时候感觉挺简单的,不过现在真正上代码之后发现情况并不妙,还是 ...
- 暑假算法练习Day3
第三天!!!最近要开始归纳总结Python学习啦!! 1006 换个格式输出整数 (15 分) 让我们用字母 B 来表示"百".字母 S 表示"十",用 12. ...
- 暑假算法练习Day6
最近开始了实验室的生活,并且学习了bullet journal.希望接下来的每一天都能完成所有的任务. 1012 数字分类 (20 分) 给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数 ...
- 暑假算法练习Day4
已经坚持第四天啦,Fighting!!! 1008 数组元素循环右移问题 (20 分) 一个数组\(A\)中存有\(N\)\((>0)\)个整数,在不允许使用另外数组的前提下,将每个整数循环向右 ...
- 暑假算法练习Day2
第二天啦!大家一起冲冲冲!! 1004 成绩排名 (20 分) 读入 n(>0)名学生的姓名.学号.成绩,分别输出成绩最高和成绩最低学生的姓名和学号. 输入格式: 每个测试输入包含 1 个测试用 ...
- 智传播客hadoop视频学习笔记(共2天)
第一天:1.答疑解惑• 就业前景• 学习hadoop要有什么基础• hadoop会像塞班一样,热一阵子吗• hadoop学习起来容易还是困难• 课堂上的学习方法(所有实验必须按照要求做,重原 ...
- HDU2037 今年暑假不AC 贪心算法
贪心算法 : 贪心算法就是只考虑眼前最优解而忽略整体的算法, 它所做出的仅是在某种意义上的局部最优解, 然后通过迭代的方法相继求出整体最优解. 但是不是所有问题都可以得到整体最优解, 所以选择贪心策略 ...
- 1187: 零起点学算法94——今年暑假不AC(Java)
1187:零起点学算法94--今年暑假不AC Time Limit: 1 Sec Memory Limit: 32 MB 64bit IO Format: %lld Description " ...
随机推荐
- NOI.AC#2007-light【根号分治】
正题 题目链接:http://noi.ac/problem/2007 题目大意 \(n\)个格子排成一排,每个格子有一个\(0/1\)和一个颜色.开始每个格子都是\(0\),\(q\)次操作取反一个颜 ...
- Wannafly挑战赛23F-计数【原根,矩阵树定理,拉格朗日插值】
正题 题目链接:https://ac.nowcoder.com/acm/contest/161/F 题目大意 给出\(n\)个点的一张图,求它的所有生成树中权值和为\(k\)的倍数的个数.输出答案对\ ...
- 揭秘:懂Python的测试员薪资到底有多高?
前言 面试的时候,面试官经常会问:会Python吗?有在工作中写过项目吗?会搭建自己的框架吗?我:恩,我只简单写过一些demo. 有时候问一些简单的Python,一问就会懵.比如:json和字典有什么 ...
- Jmeter压力测试学习7--压测带token的接口
前言 工作中我们需要压测的接口大部分都是需要先登陆后,带着token的接口(或者带着cookies),我们可以先登陆获取token再关联到下个接口.比如我现在要压测一个修改用户的个人的密码 场景案例 ...
- HTML对溢出的控制:overflow
用于对超出模块的内容进行控制 overflow的三种参数 1.visible(默认):溢出部分可见 2.hidden:溢出部分隐藏 3.auto:适当加入滚动条 overflow使用方法 1.常用 o ...
- Spring Boot中使用PostgreSQL数据库
在如今的关系型数据库中,有两个开源产品是你必须知道的.其中一个是MySQL,相信关注我的小伙伴们一定都不陌生,因为之前的Spring Boot关于关系型数据库的所有例子都是对MySQL来介绍的.而今天 ...
- JOIN US | SphereEx 精英集结
新环境.新气象,SphereEx 欢迎志同道合的你加入! 关于 SphereEx 北京思斐软件技术有限公司(sphere-ex.com),是一家致力于构建新型分布式数据基础设施的公司,秉承开源.共享. ...
- Java基础之(十一):方法
Java方法详解 何谓方法(了解) System.out.println() // 类 对象 方法 方法是语句的集合,它们在一起执行一个功能. 方法是解决一类问题的步骤的有序集合 方法包含于类或对象中 ...
- Rigidbody钢体移动时抖动问题
Rigidbody移动时抖动问题 撞墙抖动 Unity中物体移动有非常多的方式: 比如: transform.position += dir*speed*Time.deltaTime; transfo ...
- Spring Cloud Gateway Route Predicate Factory 的使用
Spring Cloud Gateway的使用 一.需求 二.基本组成 1.简介 2.核型概念 1.Route 路由 2.Predicate 谓语.断言 3.Filter 过滤器 3.工作原理 三.网 ...