zoukankan      html  css  js  c++  java
  • 【JZOJ4803】【NOIP2016提高A组模拟9.28】求导

    题目描述

    这里写图片描述

    输入

    这里写图片描述

    输出

    这里写图片描述

    样例输入

    2x^2+3x+1

    样例输出

    4x+3

    数据范围

    这里写图片描述

    样例解释

    求导的意思:
    多项式是由若干个单项式构成的
    单项式的一般形式是ax^b,其中ab都是常数,x是自变量
    对于单项式ax^b求导,结果就是(ab)x^(b-1)
    对于多项式求导,就是把构成它的所有单项式分别求导之后相加
    特别地,对于ax^0,即对常数a求导,结果是0

    解法

    模拟即可;
    注意细节:
    1.系数可为负;
    2.处理+-号
    3.当系数为1时,系数省略;
    4.特别地:输入2+2x^2,输出2x。

    代码

    #include<iostream>
    #include<stdio.h>
    #include<math.h>
    #include<string.h>
    #include<algorithm>
    #define ll long long
    #define ln(x,y) ll(log(x)/log(y))
    #define sqr(x) ((x)*(x))
    using namespace std;
    const char* fin="equation.in";
    const char* fout="equation.out";
    const ll inf=0x7fffffff;
    const ll maxn=1007;
    char a[maxn],ch;
    bool bz=false,cz=false;
    void poke(){
        ll i=1,j=0,k=0;
        if (ch=='-') i=-1;
        ch=getchar();
        if (ch=='-') i=-1;
        while (ch>='0' && ch<='9') k=k*10+ch-'0',ch=getchar();
        if (ch!='x') {
            if (ch=='+') bz=true;
            return;
        }
        if (k==0) k=1;
        ch=getchar();
        if (ch!='^'){
            if (bz) printf("+"),bz=false;
            k=i*k;
            printf("%lld",k);
            if (ch=='+') bz=true;
            cz=true;
            return;
        }
        ch=getchar();
        while (ch>='0' && ch<='9') j=j*10+ch-'0',ch=getchar();
        k*=j*i;
        j--;
        if (bz) {
            if (cz) printf("+");
            bz=false;
        }
        printf("%lldx",k);
        if (j>1) printf("^%lld",j);
        if (ch=='+') bz=true;
        cz=true;
    }
    int main(){
        freopen(fin,"r",stdin);
        freopen(fout,"w",stdout);
        while (1){
            poke();
            if (ch!='+' && ch!='-') break;
        }
        if (!cz) printf("0");
        return 0;
    }

    启发

    多出特殊的数据,多考虑细节。
    像这种模拟题看起来简单,但细节不可忽视。

  • 相关阅读:
    【题解】P3388 【模板】割点(割顶)
    【题解】T156527 直角三角形
    【题解】T156526 各数字之和
    【题解】P5318 【深基18.例3】查找文献
    数据结构:邻接表
    【题解】P3387 【模板】缩点
    全网最最详细!一文讲懂Tarjan算法求强连通分量&缩点
    vue组件间通信
    vue实现头像上传
    解读JavaScript中的Hoisting机制(js变量声明提升机制)
  • 原文地址:https://www.cnblogs.com/hiweibolu/p/6714885.html
Copyright © 2011-2022 走看看