谷甚论YsOI
  • 板块学术版
  • 楼主封禁用户
  • 当前回复9
  • 已保存回复9
  • 发布时间2020/7/7 18:28
  • 上次更新2023/11/6 23:30:01
查看原帖
谷甚论YsOI
356740
封禁用户楼主2020/7/7 18:28

人尽皆知的YSuperman比赛今天又办了一轮

按照政治选择题中常见的错误选项

敢想敢做,无须顾忌太多

我不折不扣地执行了这一做法,毫不犹豫的在明知道一题都可能做不出来的情况下报名了YsOI……

结果发现B题貌似很容易,于是我就打了如下代码:

#include <bits/stdc++.h>
using namespace std;
#define MOD 998244353;
unsigned int arr[100050],n,m;
typedef struct {
    int opt;
    int n;
} opt;
vector<opt>opts[100050];
inline unsigned int read(){
	char ch=getchar();
	long long x=0,f=1;
	while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();}
	while(ch>='0'&&ch<='9') x=x*10+(ch^48),ch=getchar();
	return x*f;
}
unsigned long long FEM(unsigned long long a1,unsigned long long b)
{
    unsigned long long ans2=1;
    while(b){
    if(b&1)
        ans2=(ans2*a1)%MOD;
        a1=(a1*a1)%MOD;
        b>>=1;
    }
    return ans2;
}
int main(void) {
    cin>>n>>m;
    for(int i=1;i<=n;i++) arr[i] = read();
    for(int i=0;i<m;i++) {
        int op = read();
        if(op == 1) {
            int l=read(),r=read(),x=read();
            for(int i=l;i<=r;i++) {
                opt op = {1,x};
                opts[i].push_back(op);
            }
        }
        else if(op == 2) {
            int l=read(),r=read(),y=read();
            bool skp = ((y>=l)&&(y<=r));
            for(int i=l;i<=r;i++) {
                if(i==y) continue;
                opt op = {2,y};
                opts[i].push_back(op);
            }
            if(skp) {
                opt op = {2,y};
                opts[y].push_back(op);
            }
        }
        else {
            int z=read(),sz=opts[z].size();
            opt ops;
            for(int i=0;i<sz;i++) {
                ops = opts[z][i];
                if(ops.opt == 1) {
                    arr[z] = FEM(arr[z],ops.n);
                }
                else arr[z] = (arr[z] * arr[ops.n]) %MOD;
                printf("%d\n",arr[z]);
                opts[z].clear();
            }
        }
    }
    return 0;
}

看起来很对啊?于是我就提交了……结果

我没(M)了(LE),想打离散化到现在都没打出来……

请各位神犇帮蒟蒻看看到底错在了哪里?

2020/7/7 18:28
加载中...