8.19考试总结

预计得分:230 实际得分:180 丢分:50

真的是哪题不拍挂哪题

T1

方差的式子是
\[ \frac{\sum a_i^2}{n} - \frac{(\sum a_i)^2}{n^2} \]
题目中式子其实要求的是
\[ n\sum a_i^2-(\sum a_i)^2 \]
想DP发现这两个东西不好同时搞

我们就DP一维记录一维

记录肯定考虑记录值域最小的

我们就设\(f_{i,j,k}\)他去表示

到了\((i,j)\)这个点

\(\sum a_i\)的值为\(k\)的最大的\(\sum a_i^2\)

转移显然

#include<cstdio>
#include<iostream>
#include<queue>
#include<algorithm>
#include<cstring>
#include<cctype>
#include<vector>
#include<ctime>
#include<cmath>
#define LL long long
#define pii pair<int,int>
#define mk make_pair
#define fi first
#define se second
using namespace std;
const int N = 35;
const int M = 1835;
int f[N][N][M];
int a[N][N];
int n,m;int num = 0;
inline int read(){int v = 0,c = 1;char ch = getchar();while(!isdigit(ch)){if(ch == '-') c = -1;ch = getchar();}while(isdigit(ch)){v = v * 10 + ch - 48;ch = getchar();}return v * c;
}
int main(){
//  freopen("path.in","r",stdin);int T = read();while(T--){memset(f,0x3f,sizeof(f));n = read(),m = read();for(int i = 1;i <= n;++i)for(int j = 1;j <= m;++j) a[i][j] = read();//cout << "GG" << endl;//  memset(f,0x3f,sizeof(f));f[1][1][a[1][1]] = a[1][1] * a[1][1];for(int i = 1;i <= n;++i){for(int j = 1;j <= m;++j){for(int k = 0;k <= (i + j - 1) * 30;++k){if(k + a[i + 1][j] <= (i + j) * 30) f[i + 1][j][k + a[i + 1][j]] = min(f[i + 1][j][k + a[i + 1][j]],f[i][j][k] + a[i + 1][j] * a[i + 1][j]);if(k + a[i][j + 1] <= (i + j) * 30) f[i][j + 1][k + a[i][j + 1]] = min(f[i][j + 1][k + a[i][j + 1]],f[i][j][k] + a[i][j + 1] * a[i][j + 1]);
//                  if(k + a[i + 1][j] > (i + j) * 30)      }}}LL ans = 0x3f3f3f3f;for(int i = 0;i <= 1800;++i)  ans = min(ans,1ll * (n + m - 1) * f[n][m][i] - i * i);printf("Case #%d: %lld\n",++num,ans);}return 0;
}

T2

挂烂了QAQ

考虑优雅的暴力建边

这是暴力建边方式时间复杂度\(O(nm)\)

正确性显然

发现每次都是一个点向一个区间连边,直接线段树优化这个过程

而由于边权只有\(1/0\)

最短路径可以\(01\)bfs

关于线段树优化建图的本质,这里就简单的说一下

本质是维护了两颗线段树,一颗表示入边另外一颗表示出边

区间操作就可以通过虚点来进行连接

#include<cstdio>
#include<iostream>
#include<queue>
#include<algorithm>
#include<cstring>
#include<cctype>
#include<vector>
#include<ctime>
#include<cmath>
#include<deque>
#define LL long long
#define pii pair<int,int>
#define mk make_pair
#define fi first
#define se second
using namespace std;
const int N = 1e6 + 3;
int pos[N];
int n,m,s;
int whe;
struct tree{int head[N << 2];int dis[N << 2];int rt1,rt2,tot,t;struct node{int lc;int rc;}a[N << 2];struct edge{int to;int nxt;int data;}e[N * 35];inline void add(int x,int y,int z){e[++tot].to = y;e[tot].data = z;e[tot].nxt = head[x];head[x] = tot;}inline void build(int &u,int l,int r,bool flag){if(!u) u = ++t;if(l == r) {if(!flag) pos[l] = u;return;}int mid = (l + r) >> 1;build(a[u].lc,l,mid,flag);build(a[u].rc,mid + 1,r,flag);if(flag){add(a[u].lc,u,0);add(a[u].rc,u,0);   }else{add(u,a[u].lc,0);add(u,a[u].rc,0);   }}inline void updata(int u,int l,int r,int ll,int rr,int p,bool flag){if(l == ll && r == rr){if(flag) add(u,p,0);else add(p,u,0);return ;}int mid = (l + r) >> 1;if(rr <= mid) updata(a[u].lc,l,mid,ll,rr,p,flag);else if(ll > mid) updata(a[u].rc,mid + 1,r,ll,rr,p,flag);else{updata(a[u].lc,l,mid,ll,mid,p,flag);updata(a[u].rc,mid + 1,r,mid + 1,rr,p,flag);}}inline void ADD(int r1,int r2,int l,int r){if(l == r){add(r2,r1,0);return ; }int mid = (l + r) >> 1;ADD(a[r1].lc,a[r2].lc,l,mid);ADD(a[r1].rc,a[r2].rc,mid + 1,r);}inline void link(int l,int r,int ll,int rr){updata(rt1,1,n,l,r,++t,1);updata(rt2,1,n,ll,rr,++t,0);add(t - 1,t,1); }inline void bfs(int x){memset(dis,0x3f,sizeof(dis));dis[x] = 0;deque <int> q;q.push_back(x);while(!q.empty()){int k = q.front();q.pop_front();for(int i = head[k];i;i = e[i].nxt){int y = e[i].to;        if(dis[y] > dis[k] + e[i].data){dis[y] = dis[k] + e[i].data;if(e[i].data) q.push_back(y);else q.push_front(y);   }}}for(int i = 1;i <= n;++i) printf("%d\n",dis[pos[i]]);}
}T;
inline int read(){int v = 0,c = 1;char ch = getchar();while(!isdigit(ch)){if(ch == '-') c = -1;ch = getchar();}while(isdigit(ch)){v = v * 10 + ch - 48;ch = getchar();}return v * c;
}
int main(){n = read(),m = read(),s = read();T.build(T.rt1,1,n,1);T.build(T.rt2,1,n,0);T.ADD(T.rt1,T.rt2,1,n);for(int i = 1;i <= m;++i){int l = read(),r = read(),ll = read(),rr = read();T.link(l,r,ll,rr);T.link(ll,rr,l,r);}
//  printf("%d\n",pos[s]);T.bfs(pos[s]);return 0;
}

T3

\(n = 1000\)被我\(n^3\)卡过去了可还行

我到现在还是怀疑题解的思路是错的,

说一下另外一个\(n^2\)做法

把矩阵查分两次之后

就变成了求最大的全\(0\)子矩阵(可能细节和边界要特殊处理)

这个直接悬线法求就好了

转载于:https://www.cnblogs.com/wyxdrqc/p/11381829.html

# 8.19考试总结相关推荐

  1. 微信小程序驾考驾校考试预约信息管理系统SSM-JAVA【数据库设计、论文、源码、开题报告】

    功能介绍 角色为用户.管理员.驾校.框架界面分为用户操作界面.管理员操作界面和驾校操作界面.用户的功能设计为: (1)个人资料管理功能,可以针对自己的信息资料进行修改管理: (2)报名入口功能,本界面 ...

  2. 2009年9月三级网络技术考前预测_填空题部分

    <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 2009年9月 ...

  3. 【渝粤教育】电大中专学习指南 (3)作业 题库

    1.中央广播电视中等专业学校()颁发国民教育系列中等学历教育毕业证书的资格. A.不具有 B.具有 错误 正确答案:左边查询 学生答案:A 2.并面向社会直接招收初中毕业生和在职青年举办()职业教育. ...

  4. 【渝粤教育】电大中专学习指南_1作业 题库

    1.中央广播电视中等专业学校()颁发国民教育系列中等学历教育毕业证书的资格. A.不具有 B.具有 错误 正确答案:左边查询 学生答案:A 2.并面向社会直接招收初中毕业生和在职青年举办()职业教育. ...

  5. 2018年春季软件工程教学设计(初稿)

    关键词:混合式教学,翻转课堂,项目驱动 教学方法: 1.   理论课堂教学采用反转课堂教学法,学生在课前通过软件工程教学视频(来源:中国大学MOOC 江西财经大学 狄国强教授讲授软件工程或由任课教师发 ...

  6. 微信小程序优选驾考驾照考试预约+后台管理系统SSM-JAVA【数据库设计、论文、源码、开题报告】

    功能介绍 角色为用户.管理员.驾校.框架界面分为用户操作界面.管理员操作界面和驾校操作界面.用户的功能设计为: (1)个人资料管理功能,可以针对自己的信息资料进行修改管理: (2)报名入口功能,本界面 ...

  7. 【渝粤教育】电大中专学习指南作业 题库

    1.并面向社会直接招收初中毕业生和在职青年举办( )职业教育. A.高等 B.初等 C.中等 正确 正确答案:左边查询 学生答案:C 2.中央广播电视中等专业学校( )颁发国民教育系列中等学历教育毕业 ...

  8. 2021-07-08~2021-07-22总结--zhengjun

    目录在此 2021-07-08~2021-07-22总结--zhengjun 7.8 考试过程 学习的算法 AC的题目 正在调试的题目 7.9 考试过程 学习的内容 AC的题目 正在调试的题目 7.1 ...

  9. 【考研总结】考研失败后的反省

    2月15号,考研分数已经出来了.怀着试一试的心情查了一下分数      说实话,当看到这一点分数是有些伤心的.回想考研这段时间,自己每天去考研自修室,无数个日日夜夜在那磨着,看着书桌上的一本本厚厚的书 ...

  10. 数据库应用+SQL优化+Git

    数据库应用 1.1 概念 1.1.1 什么是数据库 1.1.2 关系型和非关系型 1.1.3 关系型数据库 1.2 Mysql数据库 1.2.1 MySQL数据存放在哪里? 1.2.2 MySQL服务 ...

最新文章

  1. Apache2.2中文手册
  2. 2.03-handler_openner
  3. 2017你该买房,还是卖房?
  4. [云炬创业管理笔记]第四章把握创业机会测试6
  5. python nan_python [吐槽]关于nan类型时遇到的问题
  6. “2019大数据与实体经济深度融合全国行”盛大启动
  7. IntelliJ IDEA 从入门到上瘾教程,2019图文版!
  8. 内大计算机学院研究生奖学金,通知 | 【研究生评奖评优】关于做好浙江大学2017-2018学年计算机学院研究生学年小结及评奖评优工作的通知...
  9. 哪个计算机无法做到双屏显示,[工具/ PC]如何在计算机上实现双屏显示?
  10. ios9提取安装包ipa_支付宝9.9苹果版-ios支付宝9.9内测版下载ipa提取版-《百度网盘下载》西西软件下载...
  11. 联合国会员国国家名称中英文对照
  12. Android6.0 Marshmallow运行时权限申请框架
  13. 腾讯启动校园招聘人才
  14. 数学建模美国赛论文常用句式总结
  15. 写接口给京东使用的过程中学到的学习方法
  16. panda是删除行_pandas删除包含指定内容的行
  17. 如何用Photoshop来磨皮人脸图
  18. 机器学习(一)- feature scaling
  19. 制作ubuntu光盘启动盘
  20. P1658 购物(贪心算法)

热门文章

  1. Please create pull requests instead of asking for help on Homebrew‘s GitHubError: macOS 10.13
  2. error: passing ‘const AppJniCommand’ as ‘this’ argument discards qualifiers [-fpermissive]
  3. 管理新语:说说工作的主动权
  4. 管理感情:工作犯错了,不要狡辩,不要把错误推到别人身上
  5. doubango编码及发送流程的疑惑
  6. LINUX SHELL为awt指定分隔符
  7. LINUX C获取并设置环境变量
  8. 海康录像机怪事:只有第一个通道能取到RTSP流,其他通道都取不到
  9. 吾是否有“受迫害妄想症”之反省
  10. OPPO推送:怎样开通?