如何解决 Error 193: %1 不是有效的 Win32 应用程序。
  • 板块学术版
  • 楼主bzzltl
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/3/26 10:07
  • 上次更新2023/10/23 20:27:34
查看原帖
如何解决 Error 193: %1 不是有效的 Win32 应用程序。
699852
bzzltl楼主2023/3/26 10:07

在写P2515时,想要调试代码时,发现代码出现如题的问题,问如何解决。

直接在代码界面运行会产生如图效果:

代码如下:

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+6;
const int M=1e9+7;
const int IM=2147483647;
const long long LLM=9223372036854775807;

inline int read()
{
	int x=0,y=1;char c=getchar();
	while(c<'0'||c>'9'){if(c=='-') y=-y;c=getchar();}
	while(c>='0'&&c<='9'){x=x*10+(c^'0');c=getchar();}
	return x*y;
}

int n,m,d,p,op,sc,tot,ans;
int w[N],du[N],cnt[2],id[N],stc[N],siz[N],num[N],pre[N];
int val[N],dfn[N],low[N],sizz[N],head[N][2],f[N][505];
bool vis[N];
struct node{
	int u,v,nex;
}t[N][2];

void add(int u,int v,int id)
{
	t[++cnt[id]][id]=(node){u,v,head[u][id]};
	head[u][id]=cnt[id];
}

void tarjan(int u)
{
	dfn[u]=low[u]=++tot;
	stc[++sc]=u;
	vis[u]=true;
	for(int i=head[u][0];i;i=t[i][0].nex)
	{
		int v=t[i][0].v;
		if(!dfn[v]) tarjan(v),low[u]=min(low[u],low[v]);
		else if(vis[v]) low[u]=min(low[u],dfn[v]);
	}
	if(dfn[u]!=low[u]) return;
	int top=stc[sc--];
	vis[top]=false;
	siz[++p]+=w[top];
	num[top]=p;
	while(top!=u)
	{
		top=stc[sc--];
		vis[top]=false;
		siz[p]+=w[top];
		num[top]=p;
	}
}

void dfs(int u)
{
	id[++op]=u;
	sizz[u]=1;
	for(int i=head[u][1];i;i=t[i][1].nex)
	{
		int v=t[i][1].v;
		pre[v]=pre[u]+siz[u];
		dfs(v);
		sizz[u]+=sizz[v];
	}
}

signed main()
{
	n=read();m=read();
	for(int i=1;i<=n;i++) w[i]=read();
	for(int i=1;i<=n;i++) val[i]=read();
	for(int i=1;i<=n;i++) if(d=read()) add(d,i,0);
	puts("bn");
	for(int i=1;i<=n;i++) if(!dfn[i]) tarjan(i);
	for(int i=1;i<=cnt[0];i++)
	{
		int u=num[t[i][0].u],v=num[t[i][0].v];
		if(u^v) add(u,v,1),du[v]++;
	}
	for(int i=1;i<=p;i++) if(!du[i]) add(0,i,1);
	dfs(0);
	for(int i=1;i<=op;i++)
	{
		for(int j=pre[id[i]];j<=m-siz[id[i]];j++)
			f[i+1][j+siz[id[i]]]=max(f[i+1][j+siz[id[i]]],f[i][j+val[id[i]]]);
		for(int j=pre[id[i]];j<=m;j++)
			f[i+sizz[id[i]]][j]=max(f[i+sizz[id[i]]][j],f[i][j]);
	}
	printf("%d\n",f[op+1][m]);
	return 0;
}
2023/3/26 10:07
加载中...