题目:https://www.luogu.org/problemnew/show/P1850 状态里记录的是”上一回有没有申请“,而不是”上一回申请成功否“,不然“申请 j 次”就没法转移了. double不能memset,所以手动. 别忘了dis[ i ][ i ]=0. 有重边!!!所以读入边的时候取一下min! #include<iostream> #include<cstdio> #include<cstring> #include<algorithm&g…
题目:https://www.luogu.org/problemnew/show/P1850 注释掉了一堆愚蠢,自己还是太嫩了... 首先要注意选或不选是取 min 而不是 /2 ,因为这里的选或不选不是随机的而是取最优的: 然后注意 double 类型不能 memset ,还是要手动赋值: 其实也不算很难,却调了很久... 代码如下: #include<iostream> #include<cstdio> #include<cstring> using namespa…
4720: [Noip2016]换教室 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 1294  Solved: 698[Submit][Status][Discuss] Description 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程.在可以选择的课程中,有2n节 课程安排在n个时间段上.在第i(1≤i≤n)个时间段上,两节内容相同的课程同时在不同的地点进行,其中,牛牛预先 被安排在教室ci上课,而另一节课程在…
题目描述 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程.在可以选择的课程中,有2n节课程安排在n个时间段上.在第i(1≤i≤n)个时间段上,两节内容相同的课程同时在不同的地点进行,其中,牛牛预先被安排在教室ci上课,而另一节课程在教室di进行.在不提交任何申请的情况下,学生们需要按时间段的顺序依次完成所有的n节安排好的课程.如果学生想更换第i节课程的教室,则需要提出申请.若申请通过,学生就可以在第i个时间段去教室di上课,否则仍然在教室ci上课.由于更换教室的需求太…
Description 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程.在可以选择的课程中,有2n节 课程安排在n个时间段上.在第i(1≤i≤n)个时间段上,两节内容相同的课程同时在不同的地点进行,其中,牛牛预先 被安排在教室ci上课,而另一节课程在教室di进行.在不提交任何申请的情况下,学生们需要按时间段的顺序依次完 成所有的n节安排好的课程.如果学生想更换第i节课程的教室,则需要提出申请.若申请通过,学生就可以在第i个 时间段去教室di上课,否则仍然在教室ci上课…
http://172.20.6.3/Problem_Show.asp?id=1457 我不知道为什么我倒着推期望只有80分,所以我妥协了,我对着题解写了个正的,我有罪. #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<iostream> #include<queue> using namespace std; ; int t…
先弗洛伊德,然后把状态拆分遗传 #include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #define f(a,b,c) g[a+10][b+10][c+1] #define N 2100 #define M 320 using namespace std; typedef double D; ]; D g[N][N][]; int n,m,v,e; D w[N]; in…
换教室 期望DP 状态: f[i][j][0/1]表示前i节课 提交j个申请 第i个教室不申请/申请(为了确定当前教室,方便转移) 的最小期望 方程: f[i][j][0]=min(f[i-1][j][0]+dis[cla[i-1]][cla[i]],f[i-1][j][1]+dis[ano[i-1]][cla[i]]*k[i-1]+dis[cla[i-1]][cla[i]]*(1-k[i-1]));f[i][j][1]=min(f[i-1][j-1][0]+dis[cla[i-1]][ano[…
换教室(期望+DP) \(dp(i,j,1/0)\)表示第\(i\)节课,申请了\(j\)次调换,这节课\(1/0\)调换. 换教室 转移的时候考虑: 上次没申请 这次也没申请 加上\(dis(fr[0],to[0])\) 这次申请 加上\(p\times dis(fr[0],to[1])+(1-p)\times dis(fr[0],to[0])\) 上次申请 这次申请 加上\(p'p\times dis(fr[1],to[1])+p'(1-p)\times dis(fr[1],to[0])+(…
换教室 Time Limit: 20 Sec  Memory Limit: 512 MB[Submit][Status][Discuss] Description Input 第一行四个整数n,m,v,e.n表示这个学期内的时间段的数量;m表示牛牛最多可以申请更换多少节课程的教室; v表示牛牛学校里教室的数量;e表示牛牛的学校里道路的数量. 第二行n个正整数,第i(1≤i≤n)个正整数表示c,,即第i个时间段牛牛被安排上课的教室;保证1≤ci≤v. 第三行n个正整数,第i(1≤i≤n)个正整数表…