暑假算法练习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 " ...
随机推荐
- P4022-[CTSC2012]熟悉的文章【广义SAM,dp,单调队列】
正题 题目链接:https://www.luogu.com.cn/problem/P4022 题目大意 给出\(m\)个模板串. 然后\(n\)次询问给出一个串\(S\)要求找到一个最大的\(L\)使 ...
- 3-等待线程终止的join方法
等待线程终止的join方法 在项目实践中经常会遇到一个场景,就是需要等待某几件事完成之后才能继续往下执行,比如线程加载资源等等. package com.heiye.learn1; public cl ...
- nodejs安装 及环境变量配置教程 超详细版
------------恢复内容开始------------ ------------恢复内容开始------------ 上篇文件 写到 遇到了两个棘手问题 : @终端进程启动失败: shell ...
- C++核心编程 4 类和对象-对象的初始化和清理
构造函数和析构函数 对象的初始化和清理工作是两个非常重要的安全问题,一个对象或者变量没有初始状态,对其使用结果是未知的,同样,使用完一个对象或变量,没有及时清理,也会造成一定的安全问题.C++利用了构 ...
- 题解 「SCOI2016」萌萌哒
link Description 一个长度为 $ n $ 的大数,用 $ S_1S_2S_3 \ldots S_n $表示,其中 $ S_i $ 表示数的第 $ i $ 位,$ S_1 $ 是数的最高 ...
- 题解 CF762D Maximum path
题目传送门 Description 给出一个 \(3\times n\) 的带权矩阵,选出一个 \((1,1)\to (3,n)\) 的路径使得路径上点权之和最大. \(n\le 10^5\) Sol ...
- 洛谷2046 NOI2010海拔
QwQ题目太长 这里就不复制了 题目 这个题...算是个比较经典的平面图最小割变成对偶图的最短路了QwQ 首先考虑最小割应该怎么做. 有一个性质,就是每个点的海拔要么是1,要么是0 QwQ不过这个我不 ...
- 专业网络损伤仪HoloWAN meme只需5999元!
在人们对互联网的依赖度越来越高的今天,人类社会逐步买入元宇宙时代,为了大大提高整个互联网的用户体验,HoloWAN团队推出每一个互联网应用开发团队都能用得起的专业网络损伤仪HoloWAN meme!售 ...
- 手把手教你写hexo博客
市面上现在有各种博客框架,本博客教大家的是Hexo博客框架,目前比较火.搭建博客中遇到各种各样问题,网上方案也比较成熟. 一.搭建环境 安装 git 安装 node.js 安装 Hexo npm in ...
- netty系列之:netty对http2消息的封装
目录 简介 http2消息的结构 netty对http2的封装 Http2Stream Http2Frame 总结 简介 无论是什么协议,如果要真正被使用的话,需要将该协议转换成为对应的语言才好真正的 ...