在考场上很遗憾,由于平时练习,很缺少处理多组数据输入输出的经验,以及考场严重设备问题,这样一份白给的题出了很多很多错,其思维难度其实很低,但是并没有debug成功,很可惜,与当前一模一样的思路,可惜只拿了20分QAQ。
也非常令人感慨,无论是OI竞赛还是真正处理工程问题中,其实一些微小的错误就能让你为之停留很久,花费很多不必要的时间。
①首先是多组数据输入时的初值(初始化是个好习惯)
②其次考场时的思路太杂乱、太跳脱了,并没有很好的顺着题意往下走,导致部分地方写的更复杂。
是人总是会犯错的,但有没有什么办法能让我们尽可能地少犯错呢?
我想,面对这样大量、细节多的工程问题,我们或许更需要一种“规范性”的思考,有条理地做一件事,做好处理事情前地预处理以及思考,这样或许我们会更少地犯错吧。
另外:如果路过的各位能好心点个赞就更好啦QAQ
谢谢大家!
#include<bits/stdc++.h>
#define For(i,m,n) for(int i=m;i<n;i++)
#define rFor(i,m,n) for(int i=m;i>n;i--)
#define r(a) read(a)
#define rr(a,b) read(a),read(b)
#define reset(a) memset(a,0,sizeof(a))
typedef long long ll;
using namespace std;
template <class T>
inline void read(T &x)//快读
{
x=0;
T f=1;
char ch=getchar();
while(!isdigit(ch)){
if(ch=='-')f=-1;ch=getchar(); }
while(isdigit(ch)){
x=x*10+ch-48;ch=getchar();}
x=x*f;
}
const int MaxM=1e5+6,MaxN=1e3;
/*这一块是part1的信息*/
struct Edge{
int u;
int v;
int nxt;
}e[MaxM];
int head[MaxN],ind[MaxN],idu[MaxN],pointFlag[MaxN];//链式前向星和点、边的信息,idu是idu的备份,因为要对同一状态的电路进行多次输入
int tot;//链式前向星存图(就是邻接表)
int cntScc;//topo排序
bool IsLoop;//判断当前qi是否有环路
void addEdge(i