10.2 考试总结

news/2025/10/3 20:39:08/文章来源:https://www.cnblogs.com/Austin0928/p/19124969

$ \Huge 10.2 考试总结$

得分情况

  • 预计得分:20+20+0+0
  • 实际得分:0+4+0+0

时间分配(大概)

  • 8:20 - 9:10 把所有题都看了一遍,决定先做T1
  • 9:10 - 9:50 打出T1第一版过小样例,去做T2(T1最接近正解的一次)
  • 9:50 - 10:30 打出T2暴力,检查正确性 虽然是tarjan
  • 10:30 - 11:00 两道题暴力正确,开始看T3,T4
  • 11:00 - 11:30 T3没思路,T4不会打,回头看T1
  • 11:40 - 12:10 感觉T1好像打错了,第二版是纯暴力并且数组开大了

错点

  • 数组开大了MLE,所以T1没得分
  • 没想太深,直接想的暴力拿分?(T2)
  • 思路不清晰,有些模棱两可,所以代码很难去实现

题目分析

\(\textup{\textbf{{\color{black}不稳定的道路(road)}}}\)

考场思路

  • 第一版是Dijkstra直接去跑,每次枚举要等的时间,一直到\(\sqrt{d_i}+1\)为止,还是没法过,但至少有30分
  • 第二版直接暴力搜,每种情况都做,直接爆炸,如果不MLE,应该是21分

正解思路

  • 因为\(c_i\)是不变的,所以只考虑\(d_i\)即可。很容易发现当\(t>\sqrt{d_i}+1\)时,是不需要等的(因为再等一定更劣),而对于\(t<\sqrt{d_i}-1\),则是可能会等的。所以按照这个思路直接跑Dijkstra就可以了。

code:

#include<bits/stdc++.h>
#define int long long
#define mk make_pair
#define PII pair<int,int> 
#define inf 0x3f3f3f3f
using namespace std;
inline int read() {int s=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch<='9'&&ch>='0'){s=(s<<1)+(s<<3)+(ch^48);ch=getchar();}return s*f;
}
const int N=3e5+5;
int n,m;
int ver[N],head[N],ne[N],tot;
PII w[N];
int vis[N];
void add(int x,int y,PII z){tot++;ver[tot]=y,ne[tot]=head[x],head[x]=tot,w[tot]=z;
}
struct node{int d,x;
};
bool operator<(node A,node B){return A.d<B.d;
}
void dj(){priority_queue<node> q;q.push({0,1});while(!q.empty()){auto tmp=q.top();q.pop();int x=tmp.x;int t=-tmp.d;if(x==n){cout<<t;return ;}if(vis[x]) continue;vis[x]=1;for(int i=head[x];i;i=ne[i]){int y=ver[i],z1=w[i].first,z2=w[i].second;int num=1e18;for(int j=max(t,(int)sqrt(z2)-2);j<=max(t,(int)sqrt(z2)+2);j++)num=min(num,j-t+z2/(j+1));q.push({-num-z1-t,y});}}cout<<-1;
}signed main(){freopen("road.in","r",stdin);freopen("road.out","w",stdout);n=read(),m=read();for(int i=1;i<=m;i++){int x=read(),y=read(),z1=read(),z2=read();add(x,y,mk(z1,z2));add(y,x,mk(z1,z2));}dj();return 0;
}

\(\textup{\textbf{{\color{black}翻转有向图(turn)}}}\)

考场思路

  • 没有任何技术含量的暴力,每次都改边,然后去跑一边tarjan,看强连通分量是否改变

正解思路

  • 分类讨论一下,对于两点u,v,有四种情况:
    1. v->u 是否可联通
    2. u->v 是否只有唯一路径
  • 然后就很简单了,对于每个询问,直接对上面两种情况分类讨论即可
    1. 1为真 2为真 -> same
    2. 1为真 2为假 -> diff
    3. 1为假 2为真 -> diff
    4. 1为真 2为假 -> same

code:

#include<bits/stdc++.h>
#define int long long
using namespace std;
inline int read() {int s=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch<='9'&&ch>='0'){s=(s<<1)+(s<<3)+(ch^48);ch=getchar();}return s*f;
}
const int N=2e5+5;
int n,m;
int ver[N],head[N],ne[N],tot;
int f1[1005][1005],f2[1005][1005];
vector<int> v[N];
int x[N],y[N];
void dfs(int x,int st,int *f){if(f[x]) return ;f[x]=st;for(int y : v[x])dfs(y,st,f);
}
signed main(){freopen("turn.in","r",stdin);freopen("turn.out","w",stdout);n=read(),m=read();for(int i=1;i<=m;i++){x[i]=read(),y[i]=read();v[x[i]].push_back(y[i]);}for(int i=1;i<=n;i++){f1[i][i]=f2[i][i]=1;for(int j : v[i]) dfs(j,j,f1[i]);reverse(v[i].begin(),v[i].end());for(int j : v[i]) dfs(j,j,f2[i]);}for(int i=1;i<=m;i++){if(f1[x[i]][y[i]]!=f2[x[i]][y[i]]){//是否存在除当前边之外的路径if(f1[y[i]][x[i]]==0) cout<<"diff\n";//是否在一个强连通分量中else cout<<"same\n";}else {if(f1[y[i]][x[i]]>0) cout<<"diff\n";else cout<<"same\n";}}return 0;
}

\(\textup{\textbf{{\color{black}在表格里造序列(table)}}}\)

考场思路

考场上的我大脑空白......

正解思路

\(f_m(n)\)表示满足以下要求的的所有序列数量:

  1. 序列长度为 m
  2. 序列中元素均为 [1,n]内的整数;
  3. 序列中元素的最大公约数为 1

那么最大公约数为d的序列数量为\(f_m(\frac{n}{d})\)

而我们所要求的答案则是:

:::align{center}

\(\quad\sum_{i=1}^{n}\sum_{j=1}^nf_m(\frac{n}{gcd(i,j)})\)

::::

化简一下,即

:::align{center}

\( \begin{aligned} \quad\sum_{d=1}^{n}f_m(\frac{n}{d})\ast\sum_{i=1}^{n}\sum_{j=1}^{n}&(bool)[gcd(i,j)==d]\\ <&=>\\ \quad\sum_{d=1}^{n}f_m(\frac{n}{d})\ast\sum_{i=1}^{\frac{n}{d}}\sum_{j=1}^{\frac{n}{d}}&(bool)[gcd(i,j)==1] \end{aligned} \)

::::

然后就是超纲算法杜教筛

code:

\(\textup{\textbf{{\color{black}zzzyyds(holiday)}}}\)

考场思路

感觉像dp,但不知道怎么做

正解思路

\(\color{#FFFFFF}{我不会}\)

code:

总结

  1. 调整了做题顺序,先都把题看了几眼,发现3,4题有点难,去做1,2题了 (好像没什么变化)
  2. 细节方面——昨天数组开小,今天数组开大(但是我在本地和bbc上也没出问题,lemon上跑就MLE了)
  3. 看问题要抓住本质?T2直接做的暴力和优化,分析有点少。

\(\Huge \color{white}{每个地方都有问题}\)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/926295.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中建西部建设网站wordpress网站压缩

本文将介绍如何通过EventChannel实现Flutter与原生平台之间的双向通信。如果想了解如何通过MethodChannel实现Flutter调用Android原生平台的方法,可以参考上篇文章。 Flutter如何实现与Android底层平台通信,调用底层Android原生方法https://sgknight.blog.csdn.net/article/…

网站的注册和登录怎么做网站开发公司长春

登陆linux系统之后&#xff0c;使用tab自动补全快捷键的时候显示&#xff1a;cannot create temp file for here-document: No space left on device。 原因&#xff1a;磁盘满了&#xff0c;不能创建临时文件。 解决方法&#xff1a;&#xff08;逐级查看占用空间过多的目录…

ハレハレヤ

夜の街迷いし秽れの乱歩 以不洁的乱步 迷失于夜晚的街道 何処から来たのよ见窄らしいね 是从何而来的呢 真是潦倒落魄啊 ねぇうちにおいで温めてあげるよ 呐 来我这吧 会给你温暖的 今までよく顽张ったよね 一直以来都…

【愚公系列】《人工智能70年》056-形形色色的机器人(前世今生) - 实践

【愚公系列】《人工智能70年》056-形形色色的机器人(前世今生) - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: …

黑龙江企业网站建设公司宣传片拍摄设备清单

一、概念 1.1 Compose优势 由一个个可以组合的Composable函数拼成界面&#xff0c;方便维护和复用。布局模型不允许多次测量&#xff0c;提升了性能。Compose可以和View互操作&#xff08;相互包含对方&#xff09;。 1.2 声明式UI APP展示的数据绝大多数不是静态数据而是会…

4-创建索引和约束 - 实践

4-创建索引和约束 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &q…

双线网站选服务器我要申请开网店

操作 DDL(Data Definition Language 数据定义语言)用于操作对象和对象的属性,这种对象包括数据库本身,以及数据库对象,像:表、视图等等,DDL 对这些对象和属性的管理和定义具体表现在 create、drop 和 alter 上。 create 可以创建数据库和数据库的一些对象 drop …

Unity 单元测试框架用法 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025十一集训——Day2做题

https://vjudge.net/contest/753101 A. vjudge CF给 a、b、d,求 x 使 \(a or x\) 与 \(b or x\) 是 d 的因数,\(a,b,d<2^{30}\),要求 \(x<2^{60}\)考虑让 \(a or x = x\),\(b or x = x\),使 x 是 d 的倍数即…

20250929给PRO-RK3566开发板在Buildroot系统下裁剪内核【已关闭摄像头ov4689为例子】 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

核聚变:Commonwealth Fusion Systems

核聚变:Commonwealth Fusion Systems 核聚变,作为模仿太阳能量产生机制的终极清洁能源梦想,长久以来面临着“永远还有三十年”的困境。如今,一家从麻省理工学院(MIT)剥离出来的公司——Commonwealth Fusion Syst…

个人可以建论坛网站吗商会网站建设招标方案

文章目录 2.1_3 奈氏准则和香农定理&#xff08;一&#xff09;失真&#xff08;二&#xff09;失真的一种现象——码间串扰&#xff08;三&#xff09;奈氏准则&#xff08;奈奎斯特定理&#xff09;&#xff08;四&#xff09;香农定理&#xff08;五&#xff09;“Nice”和“…

详细介绍:深度学习赋能基层医疗:融合PyTorch与Django的智能医疗影像诊断平台研究

详细介绍:深度学习赋能基层医疗:融合PyTorch与Django的智能医疗影像诊断平台研究2025-10-03 20:14 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; over…

AI元人文系列文章:价值决策芯片——为机器安上一颗“透明的心”

好的,这是一篇基于我们深度讨论的、面向未来的构想性文章。AI元人文系列文章:价值决策芯片——为机器安上一颗“透明的心” 当算法的决策牵动生命与未来,我们需要的不仅是算力,更是可审视、可共鸣的价值理性。 引言…

Day007 Java方法基础

Day007 Java方法基础$(".postTitle2").removeClass("postTitle2").addClass("singleposttitle");Java方法 方法的定义及调用 何为方法 System.out.println():System是一个类,out是输出…

30天JavaScript挑战 - 从零基础到精通的完整学习指南

30天JavaScript挑战是一个系统性的编程学习项目,通过30天的渐进式课程,涵盖从基础语法到高级概念的完整JavaScript知识体系,帮助学习者从零开始掌握现代JavaScript开发技能。30天JavaScript挑战 项目描述 30天JavaS…

题解:AT_agc057_c [AGC057C] Increment or Xor

题意:很简单了,不再赘述。 做法: 先观察一下打打表,发现首先必须满足 \(a_i\equiv a_{i+\frac{N}2}\pmod {\frac{N}2}\),这里 \(N=2^n\),因为结束状态满足,且这两种操作都不影响他们对 \(\frac{N}{2}\) 取模的关…

怎样切图做网站六盘水网站设计

ENSP默认路由配置 1&#xff0c;配置R1路由器 sys ##进入系统视图模式 [Huawei]sys R1 ##修改名字 [R1]int e0/0/0 ##进入接口 [R1-Ethernet0/0/0]ip add 192.168.1.254 24 ##配置ip地址 [R1-Ethernet0/0/0]undo shut ##开启物理接口 [R1-Ethernet0/0/1]int e0/0/1 [R1-Etherne…