训练日记2019.9.11 弱者为何要战斗

编程入门 行业动态 更新时间:2024-10-25 06:27:43

训练日记2019.9.11 <a href=https://www.elefans.com/category/jswz/34/1680008.html style=弱者为何要战斗"/>

训练日记2019.9.11 弱者为何要战斗

2019.9.11 星期四
今天去招聘会,和上次工院的一样,发现并没有什么我可以做的工作。遇见了的朋友谈起这些也是摆摆手,看来可能中国大二的学生真的不属于这里吧。不过后来听说有微软?我赶紧跑过去看了看,老天,人排成了一大队。老老实实排吧,快要排到的时候,我突然想起来今天仓促之下未能来得及换衣服,一身运动装,uhhhh, 真是灾难现场了。厚着脸皮去问了下,他们说他们主要要招大三快要毕业的,大二可以网申。好吧这不就是摆明了不要我嘛hhh。

可能是太饿了还是太困了,从刚才写完那道题开始效率就每况愈下,直到现在了脑子里一点想学习的想法都没有。那咱就不学了!(暴言然后向生活低头认错)根据以往的经验,我写五三的时候高效两周总会有半周的低效率,强行学习只会让自己的效率更低,不如先休息休息。明天再战,今天不工作了。

那今天就允许自己没有新进展,不过事实上还是有一点的,作业都写完了,上课也都的确在好好听来着,写代码也写了4个小时了只写出来一题,现在什么也不想干,只想回家好好吃一顿饭,然而我还在控制体重,生无可恋(-。-; )。 上周连续三天吃多,直接导致这周感觉整个人都不好了。有趣的是自己胖还就是胖脸,肚子和腰上是一点赘肉都没有,脸是要给别人看的,所以,不能胖!减肥嘛,这个事情对于我这个从200斤瘦下来的人不是难事,每天都不吃东西就好了。不过我发现来这里之后挺难做到的,学习的时候没有别的事情就想吃东西,这也难怪去北京学习半个月花了1000块钱整在吃上,估计要搁到前几年我真的是挺难养活的hhh。学着学着就打开食物页面了,看到椰蓉月饼,看到郑州的上井自助和猪肚鸡,omg,饿死了饿死了,我现在真的想冲到宿舍吃东西,然而想想自己看着好吃的冲回去吃了一堆垃圾食品也是够搞笑的,还是算了,减肥!这周末中秋节了,自己屯着的月饼可以拿出来了,到周末放松下。跟朋友分享下月饼。

来写下今天的进展吧,写完我就撤了,今天总的来说是一个非常良好的开端,我学会如何删边了,遇到没有重边的图,直接在SPFA上设置限制条件遇到要删掉的那条边直接跳过去就行了,果断AC了HDU1595,不过有点头疼的就是没有找到怎么判重,尤其是双向边,两遍插入之后的对应顺序搞不清很容易就误删或者是误判了,哪一个出现了问题代码都过不去。明天再学。我发现新的练习题集好像很多内容都是图论题了,昨天做了道杭电的问题,求两个城市之间途径两个城市的次小最短路,我做着做着就感觉不对劲了,我感觉马上要打表然后递推求解了,这题我好像在哪见过,而且不是最短路的题目。一回去翻郭神的讲义,md,果然这不是最短路而是典型tsp问题的,出题人怎么搞的。不过这种题确实和以前遇到的单纯最短路问题相比有趣多了,也更贴近实战,不妨一试。今天就到这里了,先把AC代码发上,其他?那是明天的事情了,拜拜了各位。

#include <bits/stdc++.h>
using namespace std;
#define limit 20000 + 5
#define INF 0x3f3f3f3f
#define lowbit(i) i&(-i)//定义lowbit函数
#define EPS 1e-6
#define ff(a) printf("%d\n",a );
typedef long long ll;
void read(int &x){char ch = getchar();x = 0;for (; ch < '0' || ch > '9'; ch = getchar());for (; ch >='0' && ch <= '9'; ch = getchar()) x = x * 10 + ch - '0';
}//快读
struct edge{int to ;int weight;edge() = default;edge(int tt, int ww) : to(tt), weight(ww){}bool operator<(const edge & rhs)const{return weight > rhs.weight;}
};
vector<vector<edge> >v,rev;
int x,y;
double getDist(int x1, int y1 , int x2 ,int y2){return sqrt(pow(x1 - x2,2) + pow(y1 - y2,2));
}
int n,m;
int vis[limit],Prev[limit],dist[limit];
int start, en;
void spfa(int s){for(int i = 0 ; i <= n ; ++i){vis[i] = 0;dist[i] = INF;Prev[i] = 0;}//初始化queue<int>q;dist[s] = 0;vis[s] = 1;q.push(s);while(!q.empty()){int vs = q.front();q.pop();vis[vs] = 0;for(int i = 0 ; i < v[vs].size() ; ++i){int ve = v[vs][i].to, weight = v[vs][i].weight;if(vs == start && ve == en){continue;//别走这条边,已经被选定了}if(dist[vs] != INF && dist[vs] + weight < dist[ve]){dist[ve] = dist[vs] + weight;Prev[ve] = vs;//printf("The edge being updated is %d to %d\n", Prev[ve], ve);if(!vis[ve]){vis[ve] = 1;q.push(ve);//继续查找}}}}
}
void spfa2(int s){for(int i = 0 ; i <= n ; ++i){vis[i] = 0;dist[i] = INF;}//初始化queue<int>q;dist[s] = 0;vis[s] = 1;q.push(s);while(!q.empty()){int vs = q.front();q.pop();vis[vs] = 0;for(int i = 0 ; i < v[vs].size() ; ++i){int ve = v[vs][i].to, weight = v[vs][i].weight;if(vs == start && ve == en){continue;//别走这条边,已经被选定了}if(dist[vs] != INF && dist[vs] + weight < dist[ve]){dist[ve] = dist[vs] + weight;if(!vis[ve]){vis[ve] = 1;q.push(ve);//继续查找}}}}
}
int main(){while(~scanf("%d%d" , &n,&m)) {v.resize(n + 1);start = -1, en = -1;for(int i = 0 ; i < m ; ++i){int a,b,w;scanf("%d%d%d" , &a, &b , &w);//v[a].push_back(edge(b,w));v[b].push_back(edge(a,w));}spfa(n);int maxLen = -INF;int iter = 1;//迭代器int route = dist[1];do{start = Prev[iter] ,en = iter;spfa2(n);//从n出发走到1if(dist[1] != INF){maxLen = max(maxLen, dist[1]);}iter = Prev[iter];//找到前面这一点//printf("->%d",iter);}while(iter);printf("\n");ff(maxLen != -INF ? maxLen: route);v.clear();}return 0;
}

更多推荐

训练日记2019.9.11 弱者为何要战斗

本文发布于:2024-02-11 08:21:06,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1680009.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:弱者   日记

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!