头像

微雨双飞燕




离线:23分钟前


最近来访(18)
用户头像
撒野_9
用户头像
辣鸡号航母
用户头像
张克非
用户头像
我爱纳西妲
用户头像
155
用户头像
从余青年
用户头像
有巨有我
用户头像
violet_garden
用户头像
种花家的市长
用户头像
电子孤独蒟蒻
用户头像
cjq666
用户头像
yxc的小迷妹
用户头像
逆陽の葵
用户头像
18910310021
用户头像
球球不想圆滚滚

活动打卡代码 AcWing 831. KMP字符串

#include<iostream>

using namespace std;

const int N = 1e6 + 10;

int m, n;
char s[N], p[N];    //s[]存储主串,p[]存储模式匹配串
int ne[N];          //next数组

int main()
{
    cin >> n >> p + 1 >> m >> s + 1;

    //计算next数组过程,与KMP过程类似
    //p[i]的后缀与p[j + 1]的前缀比较,j++后的值即为前后缀相同的个数
    //j从0开始,便于判断j滑到头也没有匹配的情况,即j==0时
    for(int i = 2, j = 0; i <= n; i ++ )
    {
        while(j && p[i] != p[j + 1])  j = ne[j];   //匹配串j指针往前滑动,直到可以相等 或者 滑到头
        if(p[i] == p[j + 1])  j ++ ;               //前后缀相同的个数
        ne[i] = j;
    }

    //KMP匹配过程
    for(int i = 1, j = 0; i <= m; i ++ )
    {
        while(j && s[i] != p[j + 1])  j = ne[j];    
        if(s[i] == p[j + 1])  j ++ ;
        if(j == n)
        {
            //主串与模式匹配串完全匹配一次后就输出初次相等的主串下标i-n+1
            //但是p数组下标时从1开始,题目下标从0开始,因此输出为i-n
            printf("%d ", i - n);    
            j = ne[j];                  //进行寻找下一趟完全匹配的位置
        }
    }

    return 0;
}

懂了大概七八成吧。




#include<iostream>

using namespace std;

int main()
{
    int x, y, sum = 0;

    cin >> x >> y;
    if(x > y)  swap(x, y);

    for(int i = x + 1; i < y; i ++ )
    {
        if(i % 2 != 0)
            sum += i;
    }

    cout << sum;

    return 0;
}


活动打卡代码 AcWing 712. 正数

#include<iostream>

using namespace std;

int main()
{
    int cnt = 0;
    double x;

    for(int i = 0; i < 6; i ++ )
    {
        cin >> x;
        if(x > 0) 
            cnt ++ ;
    }

    cout << cnt << " positive numbers" ;

    return 0;
}


活动打卡代码 AcWing 709. 奇数

#include<iostream>

using namespace std;

int main()
{
    int n;

    cin >> n;
    for(int i = 1; i <= n; i ++ )
    {
        if(i % 2 == 1)
            cout << i << endl;
    }

    return 0;
}


活动打卡代码 AcWing 708. 偶数

#include<iostream>

using namespace std;

int main()
{
    for (int i = 1; i <= 100; i ++ )
    {
        if(i % 2 == 0)
            cout << i << endl;
    }

    return 0;
}


活动打卡代码 AcWing 661. 平均数3

#include<iostream>
#include<iomanip>

using namespace std;

int main()
{
    double a, b, c, d, e, aver, z;

    cin >> a >> b >> c >> d;

    aver = (2 * a + 3 * b + 4 * c + 1 * d) / 10;
    cout << "Media: " << aver;

    if(aver >= 7)
        cout << "Aluno aprovado." << endl;
    else if(aver < 5)  cout << "Aluno reprovado." << endl;
    else
    {
        cout << "Aluno em exame." << endl;
        cin >> e;
        cout << "Nota do exame: " << e << endl;

        z = (aver + e) / 2;

        if(z >= 5)  cout << "Aluno aprovado." << endl;
        else  cout << "Aluno reprovado." << endl;

        cout << "Media final: " << z;
    }

    return 0;
}

y总这是英语太好了吗,直接舍弃英语,启用其他外文,看不懂好难受!




#include<iostream>
#include<iomanip>
#include<cmath>

using namespace std;

int main()
{
    double a, b, c, x1, x2, d;

    cin >> a >> b >> c;

    d = b * b - 4 * a * c;
    if(d < 0 || a == 0)  
    {
        cout << "Impossivel calcular" ;
        return 0;
    }
    else
    {
        x1 = (-b + sqrt(d)) / 2 / a;
        x2 = (-b - sqrt(d)) / 2 / a;
        cout << "R1 = " << fixed<<setprecision(5) << x1 << endl << "R2 = " << x2;
        return 0;
    }

}


活动打卡代码 AcWing 663. 简单排序

#include<iostream>

using namespace std;

int main()
{
    int a, b, c, d, e, f;

    cin >> a >> b >> c;

    d = min(a, min(b, c));
    f = max(a, max(b, c));
    e = a + b + c - d - f;

    printf("%d\n%d\n%d\n", d, e, f);
    puts(" ");
    printf("%d\n%d\n%d\n", a, b, c);

    return 0;
}


活动打卡代码 AcWing 672. 税

#include<iostream>
#include<iomanip>

using namespace std;

int main()
{
    double x, y;

    cin >> x;

    if(x > 2000 && x <= 3000)  y = (x - 2000) * 0.08;
    else if(x > 3000 && x <= 4500)  y = (x - 3000) * 0.18 + 1000 * 0.08;
    else   y = (x - 4500) * 0.28 + 1000 * 0.08 + 1500 * 0.18;

    if(x >= 0 && x <= 2000)
        cout << "Isento" ;
    else
        cout << "R$ " << fixed<<setprecision(2) << y;

    return 0;
}



不多说

#include<iostream>

using namespace std;

int main()
{
    int a, b, c, d, h, m;
    cin >> a >> b >> c >> d;

    h = (c - a + 24) % 24 - (d >= b ? 0 : 1);
    m = (d - b + 60) % 60;

    if(h == 0 && m == 0 || h < 0)  h += 24;     //第二天

    cout << "O JOGO DUROU " << h << " HORA(S) E " << m << " MINUTO(S)" << endl;

    return 0;
}