1、早上
将本周任务所剩最后一个给做完了,写完题解之后开始看啊哈算法学习图的遍历和最短路径。(4h)
#include <stdio.h>
int fa[210],map[210][210];//fa存父亲,map[i][j] 表示i愿意借给j
main()
{int n,cnt=0;
scanf("%d",&n);
for(int i=1;i<=n;i++)//初始化父亲为自己
fa[i]=i;
for(int i=1;i<=n;i++)
{int m;
while(scanf("%d",&m)&&m)
map[i][m]=1;//i愿意借给m(单指向)
}
for(int k=1;k<=n;k++) //经典Floyd
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(map[i][k]&&map[k][j]) //判断i是否能通过其他人(k)传递光盘给j
map[i][j]=1;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(map[i][j])//如果i能传光盘给j(直接传或间接传)
fa[j]=fa[i];//j的父亲赋为i
for(int i=1;i<=n;i++)
if(fa[i]==i)//父亲为自己
cnt++;
printf("%d",cnt);
}
2、下午
首先仍在学习最短路径,并复习上周的题目,之后三点开始本周测试,测试时只做出两个。(4h)
3、晚上
做今天下午的测试题,然后开始写题解与总结。(1h)
今日学习总时长9h。