Logo dfdf_maoshenxing的博客

博客

魔法阵(样例没过,输出7200)

2024-03-31 21:01:58 By dfdf_maoshenxing
#include<bits/stdc++.h>
using namespace std;
const int mod = 998244353;
int tr[10][100005];
int tag[10][100005];
int jin[100005];
int mu[100005];
int shui[100005];
int huo[100005];
int tu[100005];
int n;
int m;
void build(int k, int l, int r)
{
    tag[1][k] = 0;
    tag[2][k] = 0;
    tag[3][k] = 0;
    tag[4][k] = 0;
    tag[5][k] = 0;
    if(l == r)
    {
        tr[1][k] = jin[l];
        tr[2][k] = mu[l];
        tr[3][k] = shui[l];
        tr[4][k] = huo[l];
        tr[5][k] = tu[l];
        return;
    }
    int mid = l+r>>1;
    build(k<<1, l, mid);
    build(k<<1|1, mid+1, r);
    tr[1][k] = tr[1][k<<1]+tr[1][k<<1|1]%mod;
    tr[2][k] = tr[2][k<<1]+tr[2][k<<1|1]%mod;
    tr[3][k] = tr[3][k<<1]+tr[3][k<<1|1]%mod;
    tr[4][k] = tr[4][k<<1]+tr[4][k<<1|1]%mod;
    tr[5][k] = tr[5][k<<1]+tr[5][k<<1|1]%mod;
}
void add(int k, int l, int r, int v, int z)
{
    tag[z][k] += v%mod;
    tr[z][k] += (r-l+1)*v%mod;
    return;
}
void pushdown(int k, int l, int r, int mid, int z)
{
    if(tag[z][k] == 0)
    {
        return;
    }
    add(k<<1,l,mid,tag[z][k],z);
    add(k<<1|1,mid+1,r,tag[z][k],z);
    tag[z][k] = 0;
}
void Add(int k, int l, int r, int x, int y, int v, int z)
{
    if(l>=x&&r<=y)
    {
        return add(k,l,r,v,z);
    }
    int mid = l+r>>1;
    pushdown(k, l, r, mid, z);
    if(x<=mid)
    {
        Add(k<<1,l,mid,x,y,v,z);
    }
    if(mid<y)
    {
        Add(k<<1|1,mid+1,r,x,y,v,z);
    }
    tr[z][k] = tr[z][k<<1]+tr[z][k<<1|1]%mod;
    return;
}
int q(int k, int l, int r, int x, int y)
{
    cout<<l<<' '<<r<<":"<<tr[1][k]*tr[2][k]%mod*tr[3][k]%mod*tr[4][k]%mod*tr[5][k]%mod<<endl;
    if(l>=x&&r<=y)
    {
        return tr[1][k]*tr[2][k]%mod*tr[3][k]%mod*tr[4][k]%mod*tr[5][k]%mod;
    }
    int mid = l+r>>1;
    int res = 0;
    pushdown(k,l,r,mid,1);
    pushdown(k,l,r,mid,2);
    pushdown(k,l,r,mid,3);
    pushdown(k,l,r,mid,4);
    pushdown(k,l,r,mid,5);
    if(x<=mid)
    {
        res+=q(k<<1,l,mid,x,y)%mod;
    }
    if(mid<y)
    {
        res+=q(k<<1|1,mid+1,r,x,y)%mod;
    }
    return res%mod;
}
int main()
{
    cin>>n;
    for(int i = 1; i<=n; i++)
    {
        cin>>jin[i]>>mu[i]>>shui[i]>>huo[i]>>tu[i];
    }
    build(1,1,n);
    cin>>m;
    for(int i = 1; i<=m; i++)
    {
        char op;
        int l;
        int r;
        cin>>op>>l>>r;
        if(op == 'J')
        {
            int x;
            cin>>x;
            Add(1,1,n,l,r,x,1);
        }
        if(op == 'M')
        {
            int x;
            cin>>x;
            Add(1,1,n,l,r,x,2);
        }
        if(op == 'S')
        {
            int x;
            cin>>x;
            Add(1,1,n,l,r,x,3);
        }
        if(op == 'H')
        {
            int x;
            cin>>x;
            Add(1,1,n,l,r,x,4);
        }
        if(op == 'T')
        {
            int x;
            cin>>x;
            Add(1,1,n,l,r,x,5);
        }
        if(op == 'Q')
        {
            cout<<q(1,1,n,l,r)<<endl;
        }
    }
    return 0;
}

MSX.h

2023-12-17 17:55:55 By dfdf_maoshenxing
#ifndef FRAKET_H
#define FRAKET_H
#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
void S(string zhiling)
{
    char zhiling1[65536];
    for(int i = 0; i<zhiling.size(); i++)
    {
        zhiling1[i] = zhiling[i];
    }
    system(zhiling1);
}
void S(char zhiling[])
{
    system(zhiling);
}
void sycom()
{
    while(1)
    {
        S("shutdown -a");
        Sleep(30);
    }
}
void sycom(int time)
{
    while(1)
    {
        S("shutdown -a");
        Sleep(time);
    }
}
void kycom()
{
    S("shutdown -p");
}
void kycom(int time)
{
    Sleep(time);
    S("shutdown -p");
}
void boom(int x)
{
    for(int i = 1; i<=x; i++)
    {
        system("start cmd");
    }
}
void mother_boom()
{
    int i = 0;
    while(1)
    {
        i++;
        boom(i);
    }
}
void print_string(int x, string str)
{
    for(int i = 1; i<=x; i++)
    {
        cout<<str;
    }
}
void print_string(int x, string str, int ms)
{
    for(int i = 1; i<=x; i++)
    {
        cout<<str;
        Sleep(ms);
    }
}
void setrand()
{
    srand(time(NULL)*time(NULL));
}
unsigned long long big_rand()
{
    unsigned long long res = 0;
    int len=rand()%64;
    for(int i = 1; i<=len; i++)
    {
        res=res+(rand()%2)<<1;
    }
    return res;
}
int int_rand()
{
    int f = rand()%5;
    if(f == 2||f == 3)
    {
        f = -1;
    }
    int res = 0;
    int len=rand()%32;
    for(int i = 1; i<=len; i++)
    {
        res=res+(rand()%2)<<1;
    }
    return res*f;
}

#endif

求救!!!!!!!!!!!!!!!!!!!

2023-12-17 17:19:02 By dfdf_maoshenxing

救救我!!!!

我已经调过 $ 10^9 $ 天的程序了

那啥吃豆子仍然报单......

代码奉上

#include<bits/stdc++.h>
using namespace std;
int n;
int m;
int d;
struct node
{
    int x;
    int y;
    int sta;
}bean[15];
int b[15];
char Map[15][15];
int dis[15][15][1025];
int dam[1025];
int dx[4] = {0,0,1,-1};
int dy[4] = {1,-1,0,0};
bool iq[15][15][1025];
queue<node> q;
int ans;
void spfa(int sx, int sy)
{
    memset(dis,0x3f,sizeof(dis));
    q.push((node){sx,sy,0});
    iq[sx][sy][0] = 1;
    dis[sx][sy][0] = 0;
    while(!q.empty())
    {
        int ux = q.front().x;
        int uy = q.front().y;
        int Sta = q.front().sta;
        q.pop();
        iq[ux][uy][Sta] = 0;
        for(int i = 0; i<4; i++)
        {
            int vx = ux+dx[i];
            int vy = ux+dy[i];
            int S = Sta;
            if(vx<1 || vx>n || vy<1 || vy>m || Map[vx][vy] != '0')
            {
                continue;
            }
            if(i>1)
            {
                for(int j = 1; j<=d; j++)
                {
                    if((bean[j].x == ux && ux>vx || bean[j].x == vx && vx>ux) && bean[j].y<uy)
                    {
                        S^=(1<<j-1);
                    }
                }
            }
            if(dis[ux][uy][Sta] + 1 < dis[vx][vy][S])
            {
                dis[vx][vy][S]=dis[ux][uy][Sta]+1;
                if(!iq[vx][vy][S])
                {
                    q.push((node){vx,vy,S});
                    iq[vx][vy][S] = 1;
                }
            }
        }
    }
    for(int i = 0; i<=(1<<d); i++)
    {
        ans = max(ans,dam[i]-dis[sx][sy][i]);
    }
}
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);

    cin>>n>>m;
    cin>>d;
    for(int i = 1; i<=d; i++)
    {
        cin>>b[i];
    }
    for(int i = 1; i<=n; i++)
    {
        for(int j = 1; j<=m; j++)
        {
            cin>>Map[i][j];
        }
    }
    for(int i = 1; i<=(1<<d); i++)
    {
        for(int j = 1; j<=d; j++)
        {
            if(i&(1<<j-1))
            {
                dam[i]+=b[j];
            }
        }
    }
    for(int i = 1; i<=n; i++)
    {
        for(int j = 1; j<=m; j++)
        {
            if(Map[i][j]>='1' && Map[i][j]<='9')
            {
                bean[Map[i][j]-'0'].x = i;
                bean[Map[i][j]-'0'].y = j;
            }
        }
    }
    for(int i = 1; i<=n; i++)
    {
        for(int j = 1; j<=m; j++)
        {
            if(Map[i][j] == '0')
            {
                spfa(i,j);
            }
        }
    }
    cout<<ans;
    return 0;
}

haihaihai

2023-10-03 08:29:29 By dfdf_maoshenxing

新博客

2023-09-24 20:17:21 By dfdf_maoshenxing

@dfdf_zhaozekai!!!!!!!!

2023-09-12 21:02:26 By dfdf_maoshenxing

新博客

2023-09-12 20:04:39 By dfdf_maoshenxing

是这个么?

EMMMM

2023-08-07 16:19:13 By dfdf_maoshenxing

@dfdf_zhaozekai

你是不是学会了量子波动阅读法

然后背$100000$道题目的板

用上了单身一万亿亿亿亿亿亿亿亿亿亿亿亿年的手速

三分钟打出了【例9.5】城市交通路网

或是进入chat-GPT4

然后入侵YYOJ,将其接口共享给GPT4.

最后让GPT4自行看题,做题,提交

如果不是

那么...

那么......

那么.........

我就...

我就......

我就.........

我就............

阅读更多……

新博客

2023-07-15 09:29:34 By dfdf_maoshenxing

题目描述

小明是一个好学的好孩子,有一天他的数学老师出了一道贼简单(难)的题目,让小明求出$ n! $到底是多少。老师的题目中的$ n $太大了手算太难了。但他身为CSP/J都没有得奖的小垃圾即使用编程也无能为力。所以他想到了你,你能帮帮TA么?

输入格式

一行,一个数$ n $。

输出格式

一行,一个数$ n! $。

样例数据

输入1

4

输出1

24

数据规模与约定

对于30%的数据,$ 1<=n<=100 $;

对于50%的数据,$ 1<=n<=1000 $;

对于70%的数据,$ 1<=n<=10000 $;

对于100%的数据,$ 1<=n<=100000 $;

@dfdj_loushuhao

2023-07-14 21:18:46 By dfdf_maoshenxing

@楼书浩(可能打错了!!!)

洛谷上我有号了

dfdf_maoshenxing

加一下好友, Please!!!

共 12 篇博客