C++2024寒假J312实战班2.5

题目列表:

#1多项式输出

            #2龙虎斗

                             #3表达式求值

                                                #4解密

#1多项式输出

这是第一个题目很简单,我也作对了。

我们下来看一下题目:
 

 我们先来看一下样例:

5

100 -1 1 -3 0 10

首先100是第一项,所以不输出加号,输出100,x是未知数,^,5是次数题目中说了,这是个自变量,每次递减1. -1 为什么输出-x^4不输出1?题目中说了1,输出正号,-1输出负号,系为数0的项不输出。

所以这是模拟对吧。

这是不分步处理的:

#include <bits/stdc++.h>
using namespace std;
int main() {
    int n;
    cin >> n;
    int a[n+1];
    for(int &i : a) cin >> i;
    if(n == 0)return cout<<a[0],0;
    int flag=0;
    for(int i = 0;i <=n;i++){
        if(a[i]!=0)break;
        else flag++;
    }
    if(flag==n+1)return cout<<0,0;
    for(int i = n - 1,j = 0; j <= n; i--,j++){
        if(j == 0 && a[j] == -1)cout<<'-';
        else if(j == 0 && a[j] == 1) ; 
        else if(a[j] != 0 && j != 0 && abs(a[j]) != 1 && j != n)cout<<(a[j] > 0 ? '+' : '-')<<abs(a[j]); //非第一项
        else if(a[j] != 0 && j == 0)cout<<a[j]; //第一项
        else if (abs(a[j]) == 1 && j != n) cout<<(a[j] > 0 ? '+' : '-');
        if(a[j] == 0) continue; //系数为0
        if(j == n)cout<<(a[j] > 0 ? '+' : '-')<<abs(a[j]);
        //先处理符号和系数
        if(j != n) cout<<'x'; // 如果不是最后一项
        else continue; //如果是最后一项就不用输出次数
        //未知数
        if(j == n-1) continue; //如果是倒数第2项也不用输出
        else cout<<'^'<<i+1;
    }
    return 0;
}

看着就很恶心对吧。

我们再来看一下分布处理的:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin >> n;
    for(int a,i = n;i >= 0;i--){
        cin>>a;
        if(a == 0) continue;            //多项式中只包含系数不为0的项
        if(a < 0) cout << '-', a = -a;  //如果是负数
        else if(i < n) cout<<+;         //不是第一项
        if(a > 1 || i == 0) cout<<a;    //i不是1,也不是最后一项
        if(i > 0) cout<<'x';            //不是最后一项输出未知数
        if(i > 1) cout<<'^'<<i;         //不是倒数第二个就不输出^和次数
    }
    return 0;
}

简洁吧。

#2龙虎斗

题目读起来 很费劲对吧。

这里可以去洛谷看一下。

我这里只讲题解了:

#include <bits/stdc++.h>
using namespace std;
using LL = long long;
int main() {
  ios::sync_with_stdio(false), cin.tie(0);
  int n, m, p1, p2;
  LL s1, s2, sum = 0;
  cin >> n;             // 总数
  vector<LL> C(n + 1);  // Ci: i号有C[i]名士兵
  for (int i = 1; i <= n; i++) cin >> C[i];
  cin >> m >> p1 >> s1 >> s2;
  C[p1] += s1, p2 = 1;  // s1个神兵天降突然出现在了p1号
  for (int i = 1; i <= n; i++) sum += C[i] * (i - m);  // 两边统一计算
  for (int i = 1; i <= n; i++)                         // p2选哪个?
    if (abs(sum + s2 * (i - m)) < abs(sum + s2 * (p2 - m))) p2 = i;
  return printf("%d\n", p2), 0;
}

#3表达式求值

第三道题了:

一个很恶心的题:

看着简单吧,做一下你就疯狂了。

我试了一千种方法,一种都没成功,我就看了一下标程。

#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e4;
int mul(stack<int> &s) {  // 栈上的所有数字相乘
  int a = 1;
  while (!s.empty()) (a *= s.top()) %= MOD, s.pop();
  return a;
}
int main() {
  ios::sync_with_stdio(false), cin.tie(0);
  string e;
  cin >> e;
  stack<int> s;
  int n = e.size(), x = 0, ans = 0;
  for (int i = 0; i < n; i++) {
    char c = e[i];
    if (!isdigit(c)) {  // 数字结束了入栈
      s.push(x), x = 0;
      if (c == '+') ans += mul(s);  // 遇到加法,把栈里面的数字都乘起来
    } else
      (x = x * 10 + (c - '0')) %= MOD;  // 数字拼接
  }
  assert(x), s.push(x);
  (ans += mul(s)) %= MOD;
  printf("%d\n", ans);
  return 0;
}

用栈,知道吧。栈就是FILO表,说人话就是先进去的后出来。这里就是想象成被+号分开的乘法算式。 

 #4解密

非初中人民不要看,不然CPU就爆了。

就是一元二次方程。

#include <bits/stdc++.h>
using namespace std;
using LL = long long;
LL solve(LL n, LL e, LL d) {
  LL m = n - e * d + 2, r = m * m - 4 * n;
  if (r < 0) return -1;
  LL s = sqrt(r);
  if (s * s != r or (m - s) % 2) return -1;
  return (m - s) / 2;
}
int main() {
  ios::sync_with_stdio(false), cin.tie(0);
  int k;
  cin >> k;
  for (LL n, e, d; k--;) {
    cin >> n >> e >> d;
    LL p = solve(n, e, d);
    if (p != -1)
      printf("%lld %lld\n", p, n / p);
    else
      puts("NO");
  }
  return 0;
}

纯数学题对吧。 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

4.2 Verilog 过程赋值

关键词&#xff1a;阻塞赋值&#xff0c;非阻塞赋值&#xff0c;并行 过程性赋值是在 initial 或 always 语句块里的赋值&#xff0c;赋值对象是寄存器、整数、实数等类型。 这些变量在被赋值后&#xff0c;其值将保持不变&#xff0c;直到重新被赋予新值。 连续性赋值总是处…

大数据应用对企业的价值

目录 一、大数据应用价值 1.1 大数据技术分析 1.2 原有技术场景的优化 1.2.1 数据分析优化 1.2.2 高并发数据处理 1.3 通过大数据构建新需求 1.3.1 智能推荐 1.3.2 广告系统 1.3.3 产品/流程优化 1.3.4 异常检测 1.3.5 智能管理 1.3.6 人工智能和机器学习 二、大数…

Java写标准输出进度条

学Java这么久了&#xff0c;突发奇想写一个 进度条 玩玩&#xff0c;下面展示一下成功吧&#xff01; Java代码实现如下 public class ProcessBar {public static void main(String[] args) {//进度条StringBuilder processBarnew StringBuilder();//进度条长度int total100;/…

Adb显示第3方应用的包名原理

Android早期版本实现原理请看 Android源码分析-pm命令的实现&#xff0c;列出包名pm list package&#xff0c;列出系统库pm list libraries_pm list packages-CSDN博客 Android12 对adb shell pm 实现原理做了重构&#xff1a;改成了template模式PackageManagerShellCommand …

备战蓝桥杯---动态规划之经典背包问题

看题&#xff1a; 我们令f[i][j]为前i个物品放满容量为j的背包的最大价值。 f[i][j]max(f[i-1][j],f[i-1][j-c[i]]w[i]); 我们开始全副成负无穷。f[0][0]0;最后循环最后一行求max; 负无穷&#xff1a;0xc0c0c0c0;正无穷&#xff1a;0x3f3f3f3f 下面是v12,n6的图示&#xff…

如何开发一个游戏平台?

随着科技的进步和互联网的普及&#xff0c;游戏行业正在迅速发展。游戏平台的开发已成为游戏行业的一个重要组成部分。开发一个游戏平台需要深入了解游戏行业&#xff0c;掌握相关技术&#xff0c;并具备创新思维。以下是一些关于如何开发一个游戏平台的建议&#xff1a; 市场调…

1、学习 Eureka 注册中心

学习 Eureka 注册中心 一、创建 Eureka 微服务0、SpringBoot 和 SpringCloud 版本1、引入 Eureka 服务端依赖2、启动类加 EnableEurekaServer 注解3、配置 yaml 文件&#xff0c;把 Eureka 服务注册到 Eureka 注册中心4、访问 Eureka 服务端&#xff0c;查看注册中心的服务列表…

立体感十足的地图组件,如何设计出来的?

以下是一些设计可视化界面中的地图组件更具备立体感的建议&#xff1a; 使用渐变色&#xff1a; 可以使用不同的渐变色来表现地图的高低差异&#xff0c;例如使用深蓝色或深紫色来表示海底&#xff0c;使用浅绿色或黄色来表示低地&#xff0c;使用橙色或红色来表示高地。 添加…

【linux系统体验】-archlinux折腾日记

archlinux 一、系统安装二、系统配置及美化2.1 中文输入法2.2 安装virtualbox增强工具2.3 终端美化 三、问题总结3.1 一、系统安装 安装步骤人们已经总结了很多很全: Arch Linux图文安装教程 大体步骤&#xff1a; 磁盘分区安装 Linux内核配置系统&#xff08;基本软件&…

Bean 的六种作用域

Bean 的六种作用域 .Bean的作用域属性注入和content获取Bean单例作用域:http://127.0.0.1:8080/single1多例作用域: http://127.0.0.1:8080/prototype请求作用域: http://127.0.0.1:8080/request会话作用域: http://127.0.0.1:8080/sessionApplication作用域: http://127.0.0.1…

python 爬虫篇(3)---->Beautiful Soup 网页解析库的使用(包含实例代码)

Beautiful Soup 网页解析库的使用 文章目录 Beautiful Soup 网页解析库的使用前言一、安装Beautiful Soup 和 lxml二、Beautiful Soup基本使用方法标签选择器1 .string --获取文本内容2 .name --获取标签本身名称3 .attrs[] --通过属性拿属性的值标准选择器find_all( name , at…

2003-2021年地级市实际利用外资数据/地级市实际利用FDI数据

2003-2021年地级市实际利用外商直接投资数据/地级市FDI数据 1、时间&#xff1a;2003-2021年 2、来源&#xff1a;城市年鉴、统计公报、省统计年鉴&#xff0c;已尽最大程度进行填补 3、指标&#xff1a;省份代码、城市代码、省份、城市、年份、当年实际使用外资金额&#x…

【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏15(附项目源码)

本节最终效果演示 文章目录 本节最终效果演示系列目录前言实现树倒下的效果拾取圆木砍树消耗卡路里斧头手臂穿模问题处理源码完结 系列目录 前言 欢迎来到【制作100个Unity游戏】系列&#xff01;本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第23篇中&…

新春贺词 | 人大金仓笃行不怠,初心不改!

新春贺词 冬至阳生&#xff0c;岁回律转&#xff0c;在这岁律更新的美好时刻&#xff0c;谨向长期以来关心和支持金仓发展的用户、领导和朋友们致以诚挚的问候和感谢&#xff01;向一年来为了金仓事业发展奋战拼搏的全体金仓人及家属致以美好的新春祝福&#xff01; 回首2023&a…

Bert下载和使用(以bert-base-uncased为例)

Bert官方github地址&#xff1a;https://github.com/google-research/bert?tabreadme-ov-file 【hugging face无法加载预训练模型】OSError&#xff1a;Can‘t load config for ‘./bert-base-uncased‘. If you‘re trying 如何下载和在本地使用Bert预训练模型 以bert-base-u…

多 split 窗口 in Gtkmm4

文章目录 效果预览实现概要源代码 效果预览 实现概要 使用Gtk::Paned虽然 Paned 只能装两个子控件, 但是我可以嵌套 paned1 装 box1 和 box2 paned2 装 paned1 和 box3 源代码 #include <gtkmm.h> class ExampleWindow : public Gtk::Window { public:ExampleWindow()…

二阶系统的迹-行列式平面方法(trace-determinant methods for 2nd order system)

让我们再次考虑二阶线性系统 d Y d t A Y \frac{d\mathbf{Y}}{dt}A\mathbf{Y} dtdY​AY 我们已经知道&#xff0c;分析这种二阶系统。最主要的是注意它的特征值情形。 &#xff08;此处没有重根的情形&#xff0c;所有是partial&#xff09; 而特征值&#xff0c;也就是系…

Amazon Dynamo学习总结

目录 一、Amazon Dynamo的问世 二、Amazon Dynamo主要技术概要 三、数据划分算法 四、数据复制 五、版本控制 六、故障处理 七、成员和故障检测 一、Amazon Dynamo的问世 Amazon Dynamo是由亚马逊在2007年开发的一种高度可扩展和分布式的键值存储系统&#xff0c;旨在解…

基于Python的HTTP隧道安全性分析:魔法背后的锁与钥匙

当我们谈论基于Python的HTTP隧道时&#xff0c;不禁让人想起那些神秘的魔法门。但是&#xff0c;在魔法背后&#xff0c;我们也需要确保安全性&#xff0c;就像需要确保魔法不会落入邪恶之手一样。那么&#xff0c;基于Python的HTTP隧道在安全性方面表现如何呢&#xff1f;让我…

JPEG图像格式加速神经网络训练--使用DCT训练CNN

JPEG图像格式加速神经网络训练 JPEG图像格式加速神经网络训练工作原理DCT系数与JPEG直接利用DCT系数阶段 1: 数据准备步骤 1: 读取JPEG文件结构步骤 2: 提取量化表和Huffman表步骤 3: 解析图像数据步骤 4: 反量化步骤 5: 获取DCT系数 阶段 2: 输入处理预处理 1: 正规化&#xf…