
请问acm中出现Compile Error怎样解决
CompileErrorMain.cppF:\temp\11710007.71510\Main.cpp(1):fatalerrorC1083:Cannotopenincl...
Compile Error
Main.cpp
F:\temp\11710007.71510\Main.cpp(1) : fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directory
// 1463poj.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
#define maxl 1500
int sdp[maxl][2];
//sdp[i][0]表示以i为根结点,i不放哨兵的最少放置哨兵的数
//sdp[i][0]表示以i为根结点,i放哨兵的最少放置哨兵的数
int edata[maxl];//表示与结点i直接相连的边数
int tnode[maxl];//表示结点编号
int tnext[maxl][20];//tnext[i][j]表示与结点i相连接的第j个点的编号。
//给sdp和tnext数组给初值
void inisdp_text()
{
int i,j;
for(i=0;i<maxl;i++)
{
sdp[i][0]=0;
sdp[i][1]=1;
}
for(i=0;i<maxl;i++)
{
for(j=0;j<20;j++)
{
tnext[i][j]=-1;
}
}
}
//求较小值
int min(int a, int b)
{
return a>b?b:a;
}
//动态规划求哨兵数。
void dps(int root)
{
int j;
for(j=0;j<edata[root];j++)
{
if(tnext[root][j]!=-1)dps(tnext[root][j]);
sdp[root][0]+=sdp[tnext[root][j]][1]; //如果不放则其孩子必放
sdp[root][1]+=min(sdp[tnext[root][j]][0],sdp[tnext[root][j]][1]); //如果放,则孩子可放可不放.
}
}
int main(int argc, char* argv[])
{
int n;
cin>>n; //n为节点数
char a; //控制输入格式
int i,j,ed;
inisdp_text();
for(i=0;i<n;i++)
{
cin>>tnode[i]>>a>>a>>ed>>a; //疑问不知道为什么,此处得用
if(ed>10)
{
cout<<"输入有误,请重新输入该行"<<endl;
cin>>tnode[i]>>a>>a>>ed>>a;
}
edata[tnode[i]]=ed;
for(j=0;j<ed;j++)
{
cin>>tnext[tnode[i]][j];
}
}
cout<<endl;
dps(tnode[0]);
cout<<min(sdp[tnode[0]][0],sdp[tnode[0]][1]);
cout<<endl;
return 0;
}
//这个程序有待改进,因为输入的是一颗树,如果是个森林的话,就不对了
//例如输入格式为:
//5
//3:(3) 1 2 4
//0:(0)
//1:(0)
//2:(0)
//4:(0)
//此时的结果又该如何了?是1,若是1,则0无法被看守。可得不出2呀。
//很是不解呀,本身的题意在这点也有点歧义呀。 展开
Main.cpp
F:\temp\11710007.71510\Main.cpp(1) : fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directory
// 1463poj.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
#define maxl 1500
int sdp[maxl][2];
//sdp[i][0]表示以i为根结点,i不放哨兵的最少放置哨兵的数
//sdp[i][0]表示以i为根结点,i放哨兵的最少放置哨兵的数
int edata[maxl];//表示与结点i直接相连的边数
int tnode[maxl];//表示结点编号
int tnext[maxl][20];//tnext[i][j]表示与结点i相连接的第j个点的编号。
//给sdp和tnext数组给初值
void inisdp_text()
{
int i,j;
for(i=0;i<maxl;i++)
{
sdp[i][0]=0;
sdp[i][1]=1;
}
for(i=0;i<maxl;i++)
{
for(j=0;j<20;j++)
{
tnext[i][j]=-1;
}
}
}
//求较小值
int min(int a, int b)
{
return a>b?b:a;
}
//动态规划求哨兵数。
void dps(int root)
{
int j;
for(j=0;j<edata[root];j++)
{
if(tnext[root][j]!=-1)dps(tnext[root][j]);
sdp[root][0]+=sdp[tnext[root][j]][1]; //如果不放则其孩子必放
sdp[root][1]+=min(sdp[tnext[root][j]][0],sdp[tnext[root][j]][1]); //如果放,则孩子可放可不放.
}
}
int main(int argc, char* argv[])
{
int n;
cin>>n; //n为节点数
char a; //控制输入格式
int i,j,ed;
inisdp_text();
for(i=0;i<n;i++)
{
cin>>tnode[i]>>a>>a>>ed>>a; //疑问不知道为什么,此处得用
if(ed>10)
{
cout<<"输入有误,请重新输入该行"<<endl;
cin>>tnode[i]>>a>>a>>ed>>a;
}
edata[tnode[i]]=ed;
for(j=0;j<ed;j++)
{
cin>>tnext[tnode[i]][j];
}
}
cout<<endl;
dps(tnode[0]);
cout<<min(sdp[tnode[0]][0],sdp[tnode[0]][1]);
cout<<endl;
return 0;
}
//这个程序有待改进,因为输入的是一颗树,如果是个森林的话,就不对了
//例如输入格式为:
//5
//3:(3) 1 2 4
//0:(0)
//1:(0)
//2:(0)
//4:(0)
//此时的结果又该如何了?是1,若是1,则0无法被看守。可得不出2呀。
//很是不解呀,本身的题意在这点也有点歧义呀。 展开
2个回答
展开全部
Compile Error
这是编译出错,你的程序在自己的机器编译也过不了吧。
把 #include "stdafx.h" 这个去掉了。这个是MFC窗的内容,acm的没有这个库文件。
这是编译出错,你的程序在自己的机器编译也过不了吧。
把 #include "stdafx.h" 这个去掉了。这个是MFC窗的内容,acm的没有这个库文件。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询