2022 ICPC Gran Premio de Mexico Repechaje 题解

2023-11-16

目录

A. Average Walk(签到)

题意:

思路:

代码:

 C. Company Layoffs(签到)

题意:

思路:

代码:

 D. Denji1(模拟/二分)

思路:

代码:

K. Keypad Repetitions(签到,哈希)

题意:

思路:

代码:

L. Ladybug And The Bullet Train(图 / BFS)

题意:

思路:

代码:


A. Average Walk(签到)

John bought a brand new smart watch, this smart watch keeps record of his exercises, mainly, the number of steps John takes during the day. The watch has a feature called "exercise mode", when exercise mode is enabled the watch will "beep" each minute showing the total amount of steps taken since the "exercise mode" was enabled. To take advantage of this feature, John decided to exercise each morning before going to work, his morning exercise will be a walk through a road nearby where he can get fresh air and walk withouth the need to stop to cross streets.

Since John will perform the walk in the mornings, John decided to walk until he has taken at least 3000 steps after a watch "beep", but no more than 15 minutes to avoid having to rush to get to his office in time. John is very consistent with the amount of X steps he takes each minute, this means, John takes exactly X steps each minute, no more, no less.

Given the amount X of stepss John takes each minute, help John find how many minutes he has to walk to finish his morning exercise.

Input

The first and only line of input contains a single integer number X(1≤X≤3000), the number of steps John takes in a minute.

Output

Output a line a single integer number, representing how many minutes John has to walk to finish his morning exercise.

Examples

input

1

output

15

input

300

output

10

input

2999

output

2

input

3000

output

1

题意:

小明每天最多走3000步,一分钟最多走x步,最多走15分钟,问小明能走多少分钟

思路:

3000/x  向上取整,然后和15取较小值即可

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int x;
void solve(){
    cin>>x;
    cout<<min(15,(3000+x-1)/x);
}

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int T=1;
    //cin>>T;
    while(T--){
        solve();
    }

    return 0;
}

 C. Company Layoffs(二分 / 前缀和)

The tech company, Weta, has announced that it will continue to make layoffs once a week for the next M weeks.

For the layoffs, Weta has established that it will fire all employees who have a score greater than Qi. Qi is different every week, and obviously the current week score must be lower than the previous one.

Fortunately, the employees know about this in advance. That is why everyone who would be affected by the week's layoff must make their score equal to Qi.

Weta will not notice this, since Weta does not care about the number of employees fired, but the sum of the employees score.

You, as the representative of the employees, must give Weta the sum of the scores once they have all adjusted their scores to avoid being fired.

Note that only employees with a score greater than Qi can change their score.

Input

The first line of input contains two integer N, M (1 ≤ M < N ≤ 105), the number of employees in Weta and the number of layoffs.

The next line contains N integers Si (1 ≤ Si ≤ 109)

The following M lines describe the layoffs. The i-th of them contains Qi, the score for the layoff of the i−thℎ week. (1 ≤ Qi ≤ 109)

Output

Print M lines with the sum of employees' scores.

Example

input

5 3
2 3 5 5 10
8
7
1

output

23
22
5

题意:

给一个长度为n的数组,在接下来m次查询x,x递减,所有大于x的值都会变成x,然后输出元素和

思路:

先把数组排序,前缀和预处理,然后二分查找第一个大于x的数,直接计算即可

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

void solve(){
    int n,m;
    cin>>n>>m;
    vector<ll>a(n+1);
    vector<ll>pre(n+1);
    
    pre[0]=0;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    
    sort(a.begin()+1,a.end());  //排序
    
    for(int i=1;i<=n;i++){
        pre[i]=a[i]+pre[i-1];   //预处理
    }

    while(m--){
        ll x;
        cin>>x;
        ll pos=lower_bound(a.begin()+1,a.end(),x)-a.begin();
        cout<<pre[pos-1]+x*(n-pos+1)<<endl;
    }
}
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    int T=1;
//    cin>>T;
    while(T--){
        solve();
    }

    return 0;
}

 D. Denji1(模拟 / 二分)

Denji is trying to kill the algorithm demon. To kill him, Denji must perform this task.

5a03aff0b0416242e074b4baabda99d5.png

Initially, the demon will give Denji an empty array. Then, Denji should perform a sequence of M operations.

An operation can be one of the following:

  1. Add a number to the end of the array.
  2. Delete from the array the number added in operation i.
  3. Add X to the number added in operation i.
  4. Print the number of smaller elements than the number added in operation i.

Unfortunately, Denji only knows how to use chainsaws, not computers, so he asked for your help to kill the algorithm demon.

Input

The first line of input contains an integer M (1 ≤ M ≤ 10^5).

The following m lines describe the operations. The i-th of them begins with a number type (type∈ {1,2,3,4}), which will represent the type of the operation given.

If type = 1, there will be one more integer in the line: A (1 ≤ A ≤ 109), which correspond the operation 1.

If type = 2, there will be one more integer in the line: B(1 ≤B < i), which correspond the operation 2. It is guaranteed that the number added in operation B is still in the array.

If type=3, there will be two integers more in the line: B, A (1 ≤ B < i; 1 ≤ A ≤ 109), which correspond the operation 3. It is guaranteed that the number added in operation B is still in the array.

If type = 4, there will be one more integer in the line: B (1 ≤ B < i), which correspond the operation 4. It is guaranteed that the number added in operation B is still in the array.

It is guaranteed that the first operation is of type 1.

Output

For each operation 4, please print a line containing the answer.

Examples

input

5
1 4
1 5
1 4
4 2
4 3

output

2
0

input

9
1 5
1 5
1 10
4 3
2 2
4 3
3 3 7
4 3
4 1

output

2
1
1
0

思路:

四种操作,维护一个单调容器,模拟操作即可

每次二分找到当前值在容器的位置,进行操作

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
vector<ll>ans;
ll a[100005];
ll n;
void solve(){
    cin>>n;
    for(int i=1;i<=n;i++){
        ll op,x,y;
        cin>>op;

        if(op==1){    //1为插入
            cin>>x;
            a[i]=x;
            auto pos=lower_bound(ans.begin(),ans.end(),x);
            ans.insert(pos,x);    //找到第一个大于等于x的位置插入
        }

        if(op==2){    //2为删除
            cin>>x;
            auto pos=lower_bound(ans.begin(),ans.end(),a[x]);
            ans.erase(pos);       //找到第一个x的位置删除
        }

        if(op==3){    //3为修改
            cin>>x>>y;    
            auto pos1=lower_bound(ans.begin(),ans.end(),a[x]);
            ans.erase(pos1);    //先把原来的值删去
            a[x]+=y;        //修改
            auto pos2=lower_bound(ans.begin(),ans.end(),a[x]);
            ans.insert(pos2,a[x]);    //修改后添加
        }

        if(op==4){    //4为查询
            cin>>x;
            x=a[x];    //返回在单调容器的下标
            ll anss=lower_bound(ans.begin(),ans.end(),x)-ans.begin();
            cout<<anss<<endl;
        }
    }
}

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int T=1;
    //cin>>T;
    while(T--){
        solve();
    }

    return 0;
}

K. Keypad Repetitions(签到 / 哈希)

A telephone keypad is a keypad installed on a push-button telephone or similar telecommunication device which usually contains 1010 keys, each of which represents a digit used to dial a telephone number. Today most telephones have an integrated memory, this memory allows users to store common used telephone numbers using a string identifier making it easier for the user to dial numbers without the need of having it memorized or stored in a paper agenda. In order for users to store the string identifier the keypad associates letters to some of the key digits, traditionally this is named as "letter mapping" and the most common one is shown in the following table:

Digit Letters
2 abc
3 def
4 ghi
5 jkl
6 mno
7 pqrs
8 tuv
9 wxyz

Using this "letter mapping" the user could store the string to identify a telephone number using the keypad, for example, to store the identifier "jhon" the user can press the keypad in the following order: "5466". One problem of this approach is that several identifiers can be represented pressing the keypad in the same order, for example, "5466" that can be used to represent "jhon", can represent also "kino".

Jaime has a list of N identifiers to be stored in his grandfathers old telephone, they suspect a lot of these identifiers can be represented with the same numbers, however, they have not been able to verify their claim, that is why they asked for your help to given the list of identifiers and a set of Q keypad presses to query, find how many identifiers of the list can be represented with each of the keypad presses.

Input

The first line of input contains two integer numbers N (1≤N≤105) and Q (1≤Q≤105), representing the number of identifiers in the list and the number of keypad presses to query. Each of the next N lines contains one of the strings of the list of identifiers, each string consists only of lowercase english alphabet letters and have a length between 1 and 10 characters. Each of the next Q lines contains a keypad press to query, each of the keypad presses contains between 1 and 10 digits between 2 and 9.

Output

For each query in the input print a line with a single integer, representing the number of identifiers in the list that can be represented using the keypad presses in the query.

Example

input

4 5
jhon
abcde
a
kino
5466
2
22233
2222
5466

output

2
1
1
0
2

题意:

模拟手机按键,给n个字符串,询问 按照给定的按键顺序 能按出几个字符串

思路:

把手机按键和字符串用哈希处理,直接读取即可 

代码:

#include<bits/stdc++.h>
using namespace std;
void solve(){
    int n,q;
    cin>>n>>q;
    map<char,char>mm;   //哈希处理手机按键
    for(char ch='a';ch<='c';ch++)mm[ch]='2';
    for(char ch='d';ch<='f';ch++)mm[ch]='3';
    for(char ch='g';ch<='i';ch++)mm[ch]='4';
    for(char ch='j';ch<='l';ch++)mm[ch]='5';
    for(char ch='m';ch<='o';ch++)mm[ch]='6';
    for(char ch='p';ch<='s';ch++)mm[ch]='7';
    for(char ch='t';ch<='v';ch++)mm[ch]='8';
    for(char ch='w';ch<='z';ch++)mm[ch]='9';

    map<string,int>mmm;
    
    for(int i=1;i<=n;i++){
        string s;
        cin>>s;
        for(int j=0;j<s.length();j++)s[j]=mm[s[j]];
        mmm[s]++;       //哈希处理字符串
    }
    
    for(int i=1;i<=q;i++){
        string s;
        cin>>s;
        cout<<mmm[s]<<endl;
    }
}
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    int T=1;
//    cin>>T;
    while(T--){
        solve();
    }

    return 0;
}

L. Ladybug And The Bullet Train(图 / BFS)

Ladybug is an agent specialized in snatch-and-grab jobs, now he has a job that requires him to go to station X and grab a certain suitcase, starting from station 1.

To do that he will be travelling through the stations via a bullet train, so he can move from station A to station B if and only if there exists a train line that connects such stations, it is always possible to reach any station from any other station and that path is unique.

One thing about agent ladybug is that he has very bad luck, he forgot the map of the train lines in the taxi, so, he does not know how to get to station X from his initial station, the lack of a map will not stop him, he will travel through the stations without the map, knowing that eventually he will reach his destination.

Each station has signs that indicate what other stations are reachable taking a train from there. If the agent hasn't already reached station X, he will need to pick an arbitrary station to go to. He will not pick a station he has already visited, except if he reached a dead end (he cannot go to a new station) and return from where he came from.

It's guaranteed that he will at some point reach the station X with this method, but because he has very bad luck, that will end up taking him the longest amount of rides possible. Help his contractor know how many rides the agent has to take to reach station X.

Note:

- A ride is a movement between stations.

- If station Y has a sign that indicates the agent can reach station X taking a train from that station, the agent will take that train first.

Input

The first contains two integers separated by a space N (2≤N≤106) and X (2≤X≤N), indicating the number of stations in train network and the station where the agent should grab the suitcase. Each of the next N−1 lines contains two integer numbers A and B (1≤A,B≤N), indicating that there is a sign at station A which indicates there is a train the agent can use to reach station B from A, and viceversa.

Output

Print one line with an integer number, representing the amount of rides the agent needs to take to reach station X.

Examples

input

5 5
1 2
2 3
3 4
4 5

output

4

input

7 4
2 1
3 1
2 4
2 5
3 6
3 7

output

8

input

2 2
1 2

output

1

题意:

给一棵n个点的无根树,任意两点都联通,求从起点到终点最多可以走多少步

限制条件:(1)除了没有路可走的情况下,不能走已经走过的路(走到死路原路返回)

(2)如果当前位置可以直接到达终点,不会往其他地方走

思路:

BFS搜索,记录终点到起点的距离,搜到挨着终点的第一个点的时候停止这一方向的搜索,其它方向搜到死路为止

除了直接连接起点和终点的路径只走一遍,其它搜到的路都要走两遍(来回) 

代码:

#include<bits/stdc++.h>
using namespace std;
vector<int>edge[1000005];
int dis[1000005];
bool vis[1000005];
void solve(){
    int n,X;
    cin>>n>>X;

    for(int i=1;i<n;i++){
        int u,v;
        cin>>u>>v;
        edge[u].push_back(v);   //建树
        edge[v].push_back(u);
    }

    queue<int>q;
    dis[1]=0;
    vis[1]=1;
    q.push(1);
    long long ans=0;

    while(!q.empty()){      //BFS
        int tmp=q.front();
        q.pop();
        bool flag=1;
        for(auto it:edge[tmp]){     //判断能不能到达终点
            if(it==X){
                flag=0;
                break;
            }
        }

        if(flag==0){    //不往其他地方走
            ans+=2;
            vis[X]=1;
            dis[X]=dis[tmp]+1;
            continue;
        }

        for(auto it:edge[tmp]){     //搜索和他相邻的边
            if(vis[it])continue;
            ans+=2;
            vis[it]=1;
            dis[it]=dis[tmp]+1;
            q.push(it);
        }
    }
    ans-=dis[X];    //减去起点到终点的距离

    cout<<ans<<endl;
}

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    solve();

    return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2022 ICPC Gran Premio de Mexico Repechaje 题解 的相关文章

  • 检查两个数是否是彼此的排列?

    给定两个数字 a b 使得 1 例如 123 是 312 的有效排列 我也不想对数字中的数字进行排序 如果您指的是数字的字符 例如 1927 和 9721 则 至少 有几种方法 如果允许排序 一种方法是简单地sprintf将它们放入两个缓冲
  • 是否可以强制 XMLWriter 将元素写入单引号中?

    这是我的代码 var ptFirstName tboxFirstName Text writer WriteAttributeString first ptFirstName 请注意 即使我使用 ptFirstName 也会以双引号结束 p
  • Qt-Qlist 检查包含自定义类

    有没有办法覆盖加载自定义类的 Qt QList 的比较机制 即在 java 中你只需要重写一个比较方法 我有一个带有我的自定义类模型的 QList QList
  • 当我使用“control-c”关闭发送对等方的套接字时,为什么接收对等方的套接字不断接收“”

    我是套接字编程的新手 我知道使用 control c 关闭套接字是一个坏习惯 但是为什么在我使用 control c 关闭发送进程后 接收方上的套接字不断接收 在 control c 退出进程后 发送方的套接字不应该关闭吗 谢谢 我知道使用
  • C++ 子字符串返回错误结果

    我有这个字符串 std string date 20121020 我正在做 std cout lt lt Date lt lt date lt lt n std cout lt lt Year lt lt date substr 0 4 l
  • 实时服务器上的 woff 字体 MIME 类型错误

    我有一个 asp net MVC 4 网站 我在其中使用 woff 字体 在 VS IIS 上运行时一切正常 然而 当我将 pate 上传到 1and1 托管 实时服务器 时 我得到以下信息 网络错误 404 未找到 http www co
  • 将布尔参数传递给 SQL Server 存储过程

    我早些时候问过这个问题 我以为我找到了问题所在 但我没有 我在将布尔参数传递给存储过程时遇到问题 这是我的 C 代码 public bool upload false protected void showDate object sende
  • 获取没有非标准端口的原始 url (C#)

    第一个问题 环境 MVC C AppHarbor Problem 我正在调用 openid 提供商 并根据域生成绝对回调 url 在我的本地机器上 如果我点击的话 效果很好http localhost 12345 login Request
  • 将目录压缩为单个文件的方法有哪些

    不知道怎么问 所以我会解释一下情况 我需要存储一些压缩文件 最初的想法是创建一个文件夹并存储所需数量的压缩文件 并创建一个文件来保存有关每个压缩文件的数据 但是 我不被允许创建许多文件 只能有一个 我决定创建一个压缩文件 其中包含有关进一步
  • C 预处理器库

    我的任务是开发源分析工具C程序 并且我需要在分析本身之前预处理代码 我想知道什么是最好的图书馆 我需要一些重量轻 便于携带的东西 与其推出自己的 为什么不使用cpp这是的一部分gcc suite http gcc gnu org onlin
  • 指针减法混乱

    当我们从另一个指针中减去一个指针时 差值不等于它们相距多少字节 而是等于它们相距多少个整数 如果指向整数 为什么这样 这个想法是你指向内存块 06 07 08 09 10 11 mem 18 24 17 53 7 14 data 如果你有i
  • 如何返回 json 结果并将 unicode 字符转义为 \u1234

    我正在实现一个返回 json 结果的方法 例如 public JsonResult MethodName Guid key var result ApiHelper GetData key Data is stored in db as v
  • 将自定义元数据添加到 jpeg 文件

    我正在开发一个图像处理项目 C 我需要在处理完成后将自定义元数据写入 jpeg 文件 我怎样才能做到这一点 有没有可用的图书馆可以做到这一点 如果您正在谈论 EXIF 元数据 您可能需要查看exiv2 http www exiv2 org
  • clang 实例化后静态成员初始化

    这样的代码可以用 GCC 编译 但 clang 3 5 失败 include
  • 如何在 VBA 中声明接受 XlfOper (LPXLOPER) 类型参数的函数?

    我在之前的回答里发现了问题 https stackoverflow com q 19325258 159684一种无需注册即可调用 C xll 中定义的函数的方法 我之前使用 XLW 提供的注册基础结构 并且使用 XlfOper 类型在 V
  • 将 xml 反序列化为类,list<> 出现问题

    我有以下 XML
  • 32 位到 64 位内联汇编移植

    我有一段 C 代码 在 GNU Linux 环境下用 g 编译 它加载一个函数指针 它如何执行并不重要 使用一些内联汇编将一些参数推送到堆栈上 然后调用该函数 代码如下 unsigned long stack 1 23 33 43 save
  • Validation.ErrorTemplate 的 Wpf 动态资源查找

    在我的 App xaml 中 我定义了一个资源Validation ErrorTemplate 这取决于动态BorderBrush资源 我打算定义独特的BorderBrush在我拥有的每个窗口以及窗口内的不同块内
  • 如何使用 std::string 将所有出现的一个字符替换为两个字符?

    有没有一种简单的方法来替换所有出现的 in a std string with 转义 a 中的所有斜杠std string 完成此操作的最简单方法可能是boost字符串算法库 http www boost org doc libs 1 46
  • 使用按位运算符相乘

    我想知道如何使用按位运算符将一系列二进制位相乘 但是 我有兴趣这样做来查找二进制值的十进制小数值 这是我正在尝试做的一个例子 假设 1010010 我想使用每个单独的位 以便将其计算为 1 2 1 0 2 2 1 2 3 0 2 4 虽然我

随机推荐

  • python decimal 转换为float_在Python中将float转换为decimal类型

    我只是在玩数字游戏 我发现Numpy提供了一个名为np vectorize的函数 允许您获取一个函数并将其应用于Numpy数组 在 23 中 import numpy as np import decimal D decimal Decim
  • manjaro笔记本显卡驱动_从入门到高端!AMD Radeon RX 500系列移动显卡全解析

    前言 在处理器领域 卧薪尝胆十年之久的AMD终究还是给所有玩家带来了惊喜 2017年2月推出了ZEN构架的处理器之后 相信后面的事情大家都知道了 手忙脚乱的Intel公司在不到2年的时间内连续发布了三代酷睿产品以应对Ryzen处理器的威胁
  • mysql5.7以上的启动、停止、赋权命令

    文章目录 1 启动mysql server 2 查看初始密码 3 本地登陆mysql 4 修改本地root用户密码 5 防火墙设置 6 开启mysql的远程登录 1 启动mysql server systemctl start mysqld
  • 查看数据库字符集

    问题描述 最近发现在不同的数据库中 有时中文占用2个字节 有时占用3个字节 经过分析发现 对于varchar类型的字段 如果数据库字符集使用utf 8 则3个字节表示一个中文 如果数据库字符集使用gbk 则2个字节表示一个中文 数据库字符集
  • QMainWindow、QDialog与QWidget的区别

    一 定义 QWidget 是所有用户界面对象的基类 窗口部件是用户界面的一个原子 它从窗口系统接收鼠标 键盘和其它事件 并且在屏幕上绘制自己的表现 每一个窗口部件都是矩形 并且它们按Z轴顺序排列的 一个窗口部件可以被它的父窗口部件或者它前面
  • 关于mysql导入中文乱码问题的理解

    一般来说 mysql导入方式有三种 一种是通过mysql命令导入 一种是通过source方式导入 最后一种是直接复制sql语句导入 前两种方式一般都能导入成功 但如果这个备份文件有问题 例如本身这个文件里面在默认编码下就乱码了 那么第三种方
  • 全连接层详解

    一 什么是全连接层 转载自 https blog csdn net qq 39521554 article details 81385159 全连接层 fully connected layers FC 在整个卷积神经网络中起到 分类器 的
  • Hyperledger Fabric 应用实战(2)--网络节点设置

    1 网络节点设置 网络名称 rentnet 联盟组织 orderer排序组织 三个成员组织supervisor rentalcrop agency 通道 rentsign 账本数据库 couchdb 物理节点 组织 容器节点 supervi
  • 普通代码块,静态代码块,构造代码块,构造方法

    1 使用示例 2 静态代码块介绍 在类中通过static修饰然后大括号里面的内容就是静态代码块 见13 1实例 static 静态代码块在类被加载的时候执行 并且他只会执行一次 优先于其他所有代码块以及构造方法执行 如果有多个静态代码块则按
  • 怎么用电脑兼职赚钱,普通人可做的6个副业项目

    现在的生活中 我们总是感觉所过的日子都很紧张 虽然我们尽可能地工作和努力 但是生活成本和社会压力仍然那么大 为了弥补自己的生活经验和财务困难 很多人开始寻找一种额外的收入来源 其实这种额外的收入来源就被称之为 兼职或副业 在如今的经济环境中
  • 浅析数组名与&数组名的区别

    一 一维数组 我们借助sizeof帮助我们理解 运行结果如下 二 二维数组 同样借助sizeof来理解 运行结果如下 三 字符型数组 1 借助sizeof来理解 类似的 注意 a b数组有一些差别 造成这种差别的原因是b数组是字符串赋值 此
  • Liveness、Readiness 和 Startup Probes

    liveness apiVersion v1 kind Pod metadata labels test liveness name liveness exec spec containers name liveness image k8s
  • tomcat点击startup.bat一闪而退的解决方法

    1 点击startup bat会闪退 编辑startup bat 在最后一行加入pause 然后保存 再次运行 就可以看到闪退的原因 2 出现这个的原因是没有配置启动的环境JAVA HOME 下面配置一下JAVA HOME 右键电脑 点击属
  • mysql数据库优化--分区

    前言 公司业务数据量很大 因为是面向全国的数据统计分析 所以一天大约是大几十万数据 因为最开始设计架构没有参与 当系统出现问题 去查看的时候发现数据库两个表一个三亿多 另一个十一亿 1 优化思路 因为单表破亿执行sql现在都是问题了 del
  • sudo apt-get update 报错(Ubuntu20.04)

    1 错误 今天运行 sudo apt get update 时报错 appstreamcli 10947 GLib ERROR 09 43 36 719 g variant new parsed 11 13 invalid GVariant
  • 分巧克力 蓝桥杯 99

    题目描述 儿童节那天有 K 位小朋友到小明家做客 小明拿出了珍藏的巧克力招待小朋友们 小明一共有 N 块巧克力 其中第 i 块是 Hi Wi 的方格组成的长方形 为了公平起见 小明需要从这N 块巧克力中切出 K 块巧克力分给小朋友们 切出的
  • OpenCV代码提取:dilate函数的实现

    Morphological Operations A set of operations that process images based on shapes Morphological operations apply a struct
  • 反汇编笔记

    1 OD中ctrl f9 运行到返回 就是运行到当前断点所在的函数末尾 retn xxx 处 若xxx 10 那么 10等于10进制的16 就是说这个函数有4个参数 一个参数默认是占4字节 所以就是retn 10 2 调试程序时 在OD内部
  • Windows-如何查看域用户的最终密码更改日期等详细信息

    有些公司的域用户密码是有期限的 比如1个月 3个月之类的 作为管理者或个人 你想查看自己或他人的域用户信息 比如上述的最终密码更改日期时间 就可以用下面这个命令 net user USERID domain 请把上面的红字改为你自己的用户名
  • 2022 ICPC Gran Premio de Mexico Repechaje 题解

    目录 A Average Walk 签到 题意 思路 代码 C Company Layoffs 签到 题意 思路 代码 D Denji1 模拟 二分 思路 代码 K Keypad Repetitions 签到 哈希 题意 思路 代码 L L