# 8.19考试总结
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考试总结相关推荐
- 微信小程序驾考驾校考试预约信息管理系统SSM-JAVA【数据库设计、论文、源码、开题报告】
功能介绍 角色为用户.管理员.驾校.框架界面分为用户操作界面.管理员操作界面和驾校操作界面.用户的功能设计为: (1)个人资料管理功能,可以针对自己的信息资料进行修改管理: (2)报名入口功能,本界面 ...
- 2009年9月三级网络技术考前预测_填空题部分
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 2009年9月 ...
- 【渝粤教育】电大中专学习指南 (3)作业 题库
1.中央广播电视中等专业学校()颁发国民教育系列中等学历教育毕业证书的资格. A.不具有 B.具有 错误 正确答案:左边查询 学生答案:A 2.并面向社会直接招收初中毕业生和在职青年举办()职业教育. ...
- 【渝粤教育】电大中专学习指南_1作业 题库
1.中央广播电视中等专业学校()颁发国民教育系列中等学历教育毕业证书的资格. A.不具有 B.具有 错误 正确答案:左边查询 学生答案:A 2.并面向社会直接招收初中毕业生和在职青年举办()职业教育. ...
- 2018年春季软件工程教学设计(初稿)
关键词:混合式教学,翻转课堂,项目驱动 教学方法: 1. 理论课堂教学采用反转课堂教学法,学生在课前通过软件工程教学视频(来源:中国大学MOOC 江西财经大学 狄国强教授讲授软件工程或由任课教师发 ...
- 微信小程序优选驾考驾照考试预约+后台管理系统SSM-JAVA【数据库设计、论文、源码、开题报告】
功能介绍 角色为用户.管理员.驾校.框架界面分为用户操作界面.管理员操作界面和驾校操作界面.用户的功能设计为: (1)个人资料管理功能,可以针对自己的信息资料进行修改管理: (2)报名入口功能,本界面 ...
- 【渝粤教育】电大中专学习指南作业 题库
1.并面向社会直接招收初中毕业生和在职青年举办( )职业教育. A.高等 B.初等 C.中等 正确 正确答案:左边查询 学生答案:C 2.中央广播电视中等专业学校( )颁发国民教育系列中等学历教育毕业 ...
- 2021-07-08~2021-07-22总结--zhengjun
目录在此 2021-07-08~2021-07-22总结--zhengjun 7.8 考试过程 学习的算法 AC的题目 正在调试的题目 7.9 考试过程 学习的内容 AC的题目 正在调试的题目 7.1 ...
- 【考研总结】考研失败后的反省
2月15号,考研分数已经出来了.怀着试一试的心情查了一下分数 说实话,当看到这一点分数是有些伤心的.回想考研这段时间,自己每天去考研自修室,无数个日日夜夜在那磨着,看着书桌上的一本本厚厚的书 ...
- 数据库应用+SQL优化+Git
数据库应用 1.1 概念 1.1.1 什么是数据库 1.1.2 关系型和非关系型 1.1.3 关系型数据库 1.2 Mysql数据库 1.2.1 MySQL数据存放在哪里? 1.2.2 MySQL服务 ...
最新文章
- Apache2.2中文手册
- 2.03-handler_openner
- 2017你该买房,还是卖房?
- [云炬创业管理笔记]第四章把握创业机会测试6
- python nan_python [吐槽]关于nan类型时遇到的问题
- “2019大数据与实体经济深度融合全国行”盛大启动
- IntelliJ IDEA 从入门到上瘾教程,2019图文版!
- 内大计算机学院研究生奖学金,通知 | 【研究生评奖评优】关于做好浙江大学2017-2018学年计算机学院研究生学年小结及评奖评优工作的通知...
- 哪个计算机无法做到双屏显示,[工具/ PC]如何在计算机上实现双屏显示?
- ios9提取安装包ipa_支付宝9.9苹果版-ios支付宝9.9内测版下载ipa提取版-《百度网盘下载》西西软件下载...
- 联合国会员国国家名称中英文对照
- Android6.0 Marshmallow运行时权限申请框架
- 腾讯启动校园招聘人才
- 数学建模美国赛论文常用句式总结
- 写接口给京东使用的过程中学到的学习方法
- panda是删除行_pandas删除包含指定内容的行
- 如何用Photoshop来磨皮人脸图
- 机器学习(一)- feature scaling
- 制作ubuntu光盘启动盘
- P1658 购物(贪心算法)
热门文章
- Please create pull requests instead of asking for help on Homebrew‘s GitHubError: macOS 10.13
- error: passing ‘const AppJniCommand’ as ‘this’ argument discards qualifiers [-fpermissive]
- 管理新语:说说工作的主动权
- 管理感情:工作犯错了,不要狡辩,不要把错误推到别人身上
- doubango编码及发送流程的疑惑
- LINUX SHELL为awt指定分隔符
- LINUX C获取并设置环境变量
- 海康录像机怪事:只有第一个通道能取到RTSP流,其他通道都取不到
- 吾是否有“受迫害妄想症”之反省
- OPPO推送:怎样开通?