【CCF-CSP】 202309-3 梯度求解
思路:
将表达式整理成只有目标求导变量的无括号加法表达式,其他变量均代入其值,然后利用最简单的求导公式,求出最终值。
样例1
x1 x1 x1 * x2 + *转换成 x1*x1*x1+x1*x2
若求导x1,则只留下x1,变为 x1*x1*x1+x1*3
求导完就是 3*x1*x1+3
更一般的,我们可以只记录表达式的系数和指数,那么我们要将每个运算数转换为一元表达式
x1*x1*x1+x1*3转换为
指数1 系数3
指数3 系数1求导之后为
指数0 系数3*1
指数2 系数1*3
对于+运算和-运算,对最终表达式就是直接相加和相减就好了,对*运算,我们要将两个表达式进行乘法运算,指数相加,系数相乘
样例1x1*x1
转换为(指数1 系数1)*(指数1 系数1)=(指数2 系数1)
x1*x1+x2
转换为(指数2 系数1)+(指数0 系数x2)=(指数0 系数x2 指数2 系数1)
代码:
#include <bits/stdc++.h>
#define N 105
using namespace std;
typedef long long ll;
const int mod=1e9+7;int n,m;
ll a[N],k;
string str,s;
vector<string> ve;
stack<map<ll,ll> > st;//记录运算数的一元表达式的系数和指数int main(){cin>>n>>m;getchar();getline(cin,str);stringstream ss(str);while(ss>>s){//所有的运算符和运算数ve.push_back(s);}for(int t=0;t<m;t++){cin>>k;str="x"+to_string(k);//求导变量for(int i=1;i<=n;i++) cin>>a[i];for(int i=0;i<ve.size();i++){s=ve[i];if(s=="+"||s=="-"||s=="*"){//运算符map<ll,ll> mp2=st.top(); st.pop();map<ll,ll> mp1=st.top(); st.pop();map<ll,ll> mp;if(s=="+"){//加法mp=mp1;for(map<ll,ll>::iterator it=mp2.begin();it!=mp2.end();it++){mp[it->first]+=it->second;mp[it->first]%=mod;}}else if(s=="-"){//减法mp=mp1;for(map<ll,ll>::iterator it=mp2.begin();it!=mp2.end();it++){mp[it->first]-=it->second;mp[it->first]%=mod;}}else{//乘法for(map<ll,ll>::iterator it1=mp1.begin();it1!=mp1.end();it1++){for(map<ll,ll>::iterator it2=mp2.begin();it2!=mp2.end();it2++){mp[it1->first+it2->first]+=it1->second*it2->second;mp[it1->first+it2->first]%=mod;}}}mp1.clear(); mp2.clear();st.push(mp);}else if(s==str){//是求导变量,保留map<ll,ll> mp;mp[1]=1;st.push(mp);}else if(s[0]=='x'){//是其他变量,则代入其值int d=stod(s.substr(1));map<ll,ll> mp;mp[0]=a[d]%mod;st.push(mp);}else{//是数字ll d=stol(s);map<ll,ll> mp;mp[0]=d%mod;st.push(mp);}}map<ll,ll> mp=st.top(); st.pop();//获得结果的一元表达式ll ans=0,fac=1,pree=0;for(map<ll,ll>::iterator it=mp.begin();it!=mp.end();it++){ll e=it->first,c=it->second;for(int i=pree+1;i<e;i++) fac=fac*a[k]%mod; pree=e==0?0:e-1;ans=(ans+c*e*fac)%mod;//简单求导公式}cout<<(ans+mod)%mod<<endl;mp.clear();}return 0;
}
相关文章:

【CCF-CSP】 202309-3 梯度求解
思路: 将表达式整理成只有目标求导变量的无括号加法表达式,其他变量均代入其值,然后利用最简单的求导公式,求出最终值。 样例1 x1 x1 x1 * x2 *转换成 x1*x1*x1x1*x2 若求导x1,则只留下x1,变为 x1*x1*x1…...

jvm的类加载
文章目录 概要加载类加载器分类双亲委派模型自定义加载器 验证准备解析初始化<cinit>与<init> 概要 jvm运行时的整体结构如下 一个Car类,类跟Car对象的转换过程如下: 加载后的class类信息存放于方法区;ClassLoader只负责clas…...

2024年汉字小达人活动4个多月开赛:18道历年选择题和答案、解析
根据近年的安排,2024年第11届汉字小达人比赛还有4个多月就启动,那么孩子们如何利用这段时间有条不紊地备考呢?我的建议是两手准备:①把小学1-5年级的语文课本上的知识点熟悉,重点是字、词、成语、古诗。②把历年真题刷…...

群晖安装青龙脚本
青龙定时任务管理面板,支持 Python3、JavaScript、Shell、Typescript 这几种环境,通过它可以方便的管理和运行定时任务(在某个时间执行一段代码),并且只需简单的配置,就可以在各个平台收到任务执行的结果通…...

【机器学习系列】使用高斯贝叶斯模型进行数据分类的完整流程
目录 一、导入数据 二、选择特征 三、十折交叉验证 四、划分训练集和测试集 五、训练高斯贝叶斯模型 六、预测测试集 七、查看训练集和测试集上的分数 八、查看混合矩阵 九、输出评估指标 一、导入数据 # 根据商户数据预测其是否续约案例 import pandas #读取数据到 da…...
Python中的单例模式:原理、实现与应用
Python中的单例模式:原理、实现与应用 一、引言 在软件开发中,设计模式是一种用于解决常见问题的最佳实践。单例模式(Singleton Pattern)是这些设计模式中的一种,它确保一个类仅有一个实例,并提供一个全局…...

Linux基础(六):Linux 系统上 C 程序的编译与调试
本篇博客详细分析,Linux平台上C程序的编译过程与调试方法,这也是我们后续程序开发的基础。 目录 一、第一个hello world程序 1.1 创建.c文件 1.2 编译链接 运行可执行程序 二、编译链接过程 2.1 预编译阶段 2.2 编译阶段 2.3 汇编阶段 2.4 链…...

移动硬盘难题:不显示容量与无法访问的解决策略
在使用移动硬盘的过程中,有时会遇到一些棘手的问题,比如移动硬盘不显示容量且无法访问。这种情况让人十分头疼,因为它不仅影响了数据的正常使用,还可能导致重要数据的丢失。接下来,我们就来详细探讨一下这个问题及其解…...

基于springboot+vue的智慧外贸平台
开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…...

@Async详解,为什么生产环境不推荐直接使用@Async?
一、Async 注解介绍: Async 注解用于声明一个方法是异步的。当在方法上加上这个注解时,Spring 将会在一个新的线程中执行该方法,而不会阻塞原始线程。这对于需要进行一些异步操作的场景非常有用,比如在后台执行一些耗时的任务而不…...

LaTeX 2022软件安装教程(附软件下载地址)
软件简介: 软件【下载地址】获取方式见文末。注:推荐使用,更贴合此安装方法! LaTeX 2022是基于ΤΕΧ的一种排版系统,特别适用于生成科技和数学文档的高质量打印。它可用于各种文档类型,从简单信函到完整…...
纯干货分享 机器学习7大方面,30个硬核数据集
在刚刚开始学习算法的时候,大家有没有过这种感觉,最最重要的那必须是算法本身! 其实在一定程度上忽略了数据的重要性。 而事实上一定是,质量高的数据集可能是最重要的! 数据集在机器学习算法项目中具有非常关键的重…...
算法训练营day46
一、单词拆分 元素无重可复选 base case is.length return true,遍历到了最后, 因为ilen s.length,len初始值为1,那么i1 s.length,那么i s.lenth -1 也就是最后一个字符位置 dp(s,i)函数定义:返回 s[i…] 是否能够…...

推荐五个线上兼职,在家也能轻松日入百元,适合上班族和全职宝妈
在这个瞬息万变的时代,你是否也曾考虑过在繁忙的工作之外,寻找一份兼职副业来补贴家用,同时保持生活的多样性?别急,现在就让我为你揭秘五个可靠的日结线上兼职岗位,助你轻松迈向财务自由之路! 一…...

Python_文件操作_学习
目录 一、关于文件的打开和关闭 1. 文件的打开 2.文件的关闭 二、文件的读取 1. 文件的读_r 2. 使用readline 3.使用readlines 三、文件的写入 1. 文本的新建写入 2.文本的追加写入 四、文件的删除和重命名 1.文件的重命名 2.文件的删除 五、文件的定位读写 1.t…...
Leetcode 3154. Find Number of Ways to Reach the K-th Stair
Leetcode 3154. Find Number of Ways to Reach the K-th Stair 1. 解题思路2. 代码实现 题目链接:3154. Find Number of Ways to Reach the K-th Stair 1. 解题思路 这一题思路上就是一个动态规划,我们只需要确定一下运行的终止条件,然后写…...
Vue3/Vite引入EasyPlayer.js播放H265视频错误的问题
一、引入EasyPlayer.js github链接:GitHub - EasyDarwin/EasyPlayer.js: EasyPlayer.js H5播放器 将demo/html目录下的 EasyPlayer-element.min.js、EasyPlayer-lib.min.js、EasyPlayer.wasm、jquery.min.js 复制到vue3工程的public目录下,注意,vue3 vite的index.html文件…...

CentOS 7安装alertmanager
说明:本文介绍如何在CentOS 7安装alertmanager; Step1:下载安装包 访问Github仓库,下载对应版本的alertmanager安装包 https://github.com/prometheus/alertmanager/releases 如何查看自己系统的信息,可参考下图中的…...

YOLOv10详细解读 | 一文带你深入了解yolov10的创新点(附网络结构图 + 举例说明)
前言 Hello大家好,我是Snu77,继YOLOv9发布时间没有多久,YOLOv10就紧接着发布于2024.5.23号(不得不感叹YOLO系列的发展速度,但要纠正大家的观点就是不是最新的就一定最好)! 本文给大家带来的是…...

【openlayers系统学习】3.5colormap详解(颜色映射)
五、colormap详解(颜色映射) colormap 包是一个很好的实用程序库,用于创建颜色图。该库已作为项目的依赖项添加(1.7美化(设置style))。要导入它,请编辑 main.js 以包含以下行…...

手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...

循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...

CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...

页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...

2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...

自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...