第二届开拓杯赛题选讲
前言
被实验室的大一同学邀请来参赛的,先查阅了一下规则,发现没有禁止大二参赛,虽然知道比较不讲武德,但还是填了一手表格。非常赶巧,我周日八点十分起的床,于是便有了这篇题解。
正文
一道小小的公式题
题目不过多赘述,其实看见这种数据(2≤n≤1000000000)(2 \leq n\leq 1000000000)(2≤n≤1000000000),几乎已经是把找规律这三个大字写在了屏幕上(笑,做法其实很多,不管是用Python打表观察还是推公式,都可以得出质数输出1,非质数输出0这样一条结论。原题数据似乎被削过,暴力判素数就可以过。时间复杂度:O(nn)O(n \sqrt n)O(nn),当然也可以使用更快的Miller_Rabin算法来判断素性
代码
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162#include <bits/stdc++.h>using namespace std;#defi ...
OpenCV实现签到事件的识别
0x00 前言
最近阴间作息导致下午期间萎靡不振。昨天刚把离散结构的签到睡了过去,一睁眼都要下课了,在一睁眼疯狂星期四没了。于是乎准备着手分析一下腾讯会议的签到模块
0x01 尝试通过Call来入手
在没开始做之前,思路是首先拿OD调试一下,由于腾讯会议客户端是Qt做的,大概猜测跳新窗口是用的Widget之类的东西,所以查一下数据区定位到关键的类,bpsend下断然后看哪一条程序停下了就行,拿到Call了直接做后台签到。
但是现实比较残酷,腾讯会议有反调试,我的渣逆向技术不足以让我过掉他的反调,于是转向了纯视觉方案。
高端的脚本往往采用最朴素的工作方式
0x02 取会议窗口图片
首先当然可以直接截整个窗口的图,但是分析起来时间较长,比较占用资源,遂用FindWindow方法取腾讯会议的Hwnd,然后调用Pillow的GrabImage方法就行,于是第一版代码如下
123hwnd = win32gui.FindWindow(None,'腾讯会议')rect = win32gui.GetWindowRect(hwnd)img = ImageGrab.grab(bbox= ...
数据结构课程设计选讲
1.信号放大器
题目简介
天然气经过管道网络从其生产基地输送到消耗地,在传输过程中,其性能的某一个或 几个方面可能会有所衰减(例如气压)。为了保证信号衰减不超过容忍值,应在网络中的合 适位置放置放大器以增加信号(例如电压)使其与源端相同。设计算法确定把信号放大器 放在何处,能使所用的放大器数目最少并且保证信号衰减不超过给定的容忍值。
数据输入规范
第一行两个整数 n,rn,rn,r 表示一共有nnn个节点,rrr为信号衰减量的容忍值
此后的n−1n-1n−1行
每行三个整数 u,v,wu,v,wu,v,w 代表节点uuu和节点vvv之间存在一条信号衰减为www的边
样例 #1
11 3
1 2 1
1 3 3
2 4 2
2 5 2
4 8 2
4 9 1
3 6 1
3 7 2
6 10 2
7 11 2
输出 #1
7 3 4
涉及知识点
邻接表,树的遍历,递推
代码
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849#include <bi ...
2022东北四省赛
B.Capital Program
题目解析
因为直径中点到各个叶子节点的距离最短,所以需要统计各个点距离中点n的距离以及当前点能到达的最大深度,故答案为前n−kn-kn−k个点里最大的maxdepth[i]−depth[i]maxdepth[i]-depth[i]maxdepth[i]−depth[i]
Code
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113#include <bits/stdc++.h>using namespace std;#define ll long long#define ull unsigned long long#define en ...
Educational Codeforces Round 129 (Rated for Div. 2)
A.Game with Cards
题目解析
直接判断双方最大的手牌。如果最大的手牌比对方大,则对方无牌可出获得胜利
Code
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647#include <bits/stdc++.h>using namespace std;#define ll long long#define endl "\n"#define lowbit(x) ((-(x))&(x))const double eps = 1e-6;const int INF = 0x3f3f3f3f;const int MAX=100;int n,m;void solve(){ int a[3][MAX]; scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[1][i]); sc ...