链接:https://ac.nowcoder.com/acm/contest/25022/1004来源:牛客网 题目描述 Bob enjoys playing computer games, especially strategic games, but sometimes he cannot find the solution fast enough and then he is very sad. Now he has the follow
fofa与shodan接口 参考fofa和shodan的官方文档,利用API import os import configparser as cfg from ttkbootstrap.dialogs import Messagebox #fofa接口API存储函数 def fofa_write(email,API): config = cfg.ConfigParser() config.add_section('fofa') config['
P2853 [USACO06DEC]Cow Picnic S 和这道差不多P3916 图的遍历,图的遍历通过方向建边使子节点被标记最大编号。这题可以通过奶牛找牧场 分析:从奶牛的位置开始dfs,对每个被dfs的点进行标记,最后统计有多少个点的标记的数量等于奶牛的值。 代码: #include<iostream> #include<algorit
P5504 柠檬 考虑 \(dp\) 我们设 \(f_i\) 表示已经取下了前 \(i\) 个贝壳所得到的最大柠檬数 显然我们可以得到一个结论:每一段左右大小必然相等 因为若是左右两个端点不相等的话,必然有一个端点因为大小不同而没有贡献 这个端点就可以并到其他区建立得到更优解 我们用 \(c_i\) 表示
定义: 基本框架 int dfs(int u) // 保证进入dfs为有效且未访问状态,在进入dfs之后标记 { st[u] = true; // 标记 for (int i = h[u]; i != -1; i = ne[i]) { int j = e[i]; if (!st[j]) dfs(j); // 如果是无效状态或访问过,不进入 } }
题目链接 题意描述 题目意思是给你一段文章,然后将左双引号"""替换成"``",将右双引号替换成"''" 思路分析 这道题目还是非常容易地,属于是C++的语法题,鉴于cin和scanf都无法读入字符空白和换行,因此选择了getchar(),当返回值为EOF即为-1时便停止,也就是后面没有字符了,将读入的字符判断,如
Cyber Language 字符串输入 签到题 题意: 读入一行小写字母组成的单词,输出每个单词的首字母 注意几点即可: cin是不会吃掉回车的,所以我们需要getchar手动吃掉回车, 关了同步后,是不能用getchar的,需要使用cin.get()来吃掉回车。 代码1:关闭快读 void solve(){ cin >> t; g
link。 算个 trash round,考场觉得就 T4 还可以,结果是个暴力题…… T1 是卡牌类模拟,T2 trivial 构造,T3 不知道为啥挂了,等我找到原因再更新一发。 D. possible:给定一棵以 \(1\) 为根的带边权有根树,再给出一些带权返祖边,多次询问两点间最短距离,保证树高最多 \(20\)。 注意到两个事
Problem - 7150 Static Query on Tree 题意: 给定一棵以1为根的有向树,\(q\) 次询问,每次询问给出三个集合 \(A,B,C\) 问树中满足都可以由集合 \(A, B\) 中各自至少一个点走到的,自身也可以走到 \(C\) 集合中至少一个点的点的个数。 有一个比较显然的树链剖分写法,这里说的是虚树写法,其
题目链接 题目很好理解 1.暴力 60分 根据题面不难想到O(n2)的暴力,对b数组做一个最小值st表,然后暴力枚举两个端点,看区间最小值是否小于等于p即可 // Problem: P1311 [NOIP2011 提高组] 选择客栈 // Contest: Luogu // URL: https://www.luogu.com.cn/problem/P1311 // Memory Limi
T1 先分类讨论把 \(\max\) 拆开 假设 \(a_c+b_c\geq a_y+b_y\) \(a_c-a_y\geq b_y-b_c\) 于是对于每个蛋糕都记录一个判据量 \(h\) 属于 \(L\) 的判据为 \(c-y\) 属于 \(C\) 的是 \(y-c\) 当 \(a\) 的判据大于等于 \(b\) 的时候取最小的 \(b_c\) 再开一个关于 \(h\) 值域的线段树,
基础数据结构介绍 栈 \(luoguB3614\) 概念 一种先进后出的数据结构 实现方法 手写栈(用数组模拟) int st[N];//模拟栈 int idx;//栈中元素数量 st[++idx]=x;//压栈 return st[idx];//取栈顶元素 if(idx) idx--;//弹出栈顶元素 idx=0;//清空栈 STL库 #include <stack>//栈
示例:primer.c #include <stdio.h>#include <stdlib.h>#include <pthread.h>#include <string.h> #define LEFT 30000000#define RIGHT 30000200#define THRNUM (RIGHT-LEFT+1) typedef struct thread_arg_st //自定义结构体{ int i;}targ_st; static void
基本概念 RMQ问题 RMQ英文是Range Maximum(Minimum) Query, 翻译就是区间求最值的意思。 ST表(Sparse Table,稀疏表) 是一种简单的数据结构,基于 倍增 思想,主要用来解决RMQ问题。 不支持修改操作 实现 复杂度: 预处理:\(O(n \log n)\) 每次查询:\(O(1)\) 预处理 预处理复杂度: \(O(n \log n
题目描述 小 B 喜欢玩游戏。 有一天,小 B 在玩一个序列上的游戏,他得到了正整数序列{ai}以及一个常数c 。 游戏规则是,玩家可以对于每一个ai 分别加上一个非负整数x ,代价为 x2,完成所有操作之后,需要额外花费的代价就是所有相邻位置上数之差的绝对值总和再乘上c 。 小 B 觉得这个游戏很
CF 传送门:CF1320E 虚树 + dijkstra。 解法来自 @hs_black。 Solution 1 发现 \(m\) 的总和与 \(n\) 同级。又因为每次询问只涉及到少数节点,故知道使用虚树去优化。 建虚树优化什么?动态规划似乎不太可做,而病毒感染的过程有些像最短路。 最短路,使用 \(\text{spfa}\)?但 \(\text{spfa}
传送门 思路 学了析合树还不会做这题,感觉我真的没什么救/ll 对于这类跳若干步的问题,一个很自然的想法是预处理倍增数组,但这题的状态数量是 \(O(n^2)\) 的,看起来不能直接做。这时一个关键结论突然出现:设 \(f^k(l,r)\) 为 \([l,r]\) 操作 \(k\) 后的结果,那么若 \([l_1,r_1] \cup [l_
Problem - A - Codeforces 给了t个询问,n个数Ai,又给了一个数为m,原来字符串为一连串的B,有两个操作第一个操作使第Ai个变为A,第二个操作使(M+1-Ai)变为A,使其字典序最小,肯定是比一下看那个在前面,记录一下即可。 1 4 5 1 1 3 1 注意的使我们要判断一
1、初识MySQL 数据库(DB,DataBase):存数据(txt,Excel,word)、管理数据 关系型数据库管理系统 数据库是所有软件体系中最核心的存在 1.1、数据库分类 关系型数据库:(SQL) MySQL、Oracle、Sql Server、DB2、SQLLitle 通过表和表之间,行和列之间的关系进行数据的存储 非关系型数据库:(NoSQL,not
获取公网IP import requests res = requests.get('http://myip.ipip.net', timeout=5).text print(res) 获取局域网IP 如果计算机设备有连接到 Internet 的路由,可以使用: import socket s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect(("8.8.8.8", 80)) pr
.join() 的用法 JavaScript中的join()方法可以用于把数组中所有通过指定分隔符进行分隔的元素放入一个字符串。 作用:用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。 语法:arrayObject.join(separator) 参数:separator 可选。指定要使用的分隔
【问题描述】 N个人正在排队进入一个音乐会。人们等得很无聊,于是他们开始转来转去,想在队伍里寻找自己的熟人。队列中任意两个人A和B ,如果他们是相邻或他们之间没有人比A或B高,那么他们是可以互相看得见的。写一个程序计算出有多少对人可以互相看见。 输入: 输入的第一
实现一个最大1024个不同定时器,定时时间到执行相应的函数。 头文件anytimer.h #ifndef __ANYTIMER_H__#define __ANYTIMER_H__ #define MAX_TIMER 1024typedef void (*func)(void *); int add_anytimer(int time,func curFun,char *str); //添加定时器int cancel_anytimer(int time
问题 python中如果通过list索引直接修改字符串的值会直接报错: 代码如下: import copy text = "重庆重庆市重庆重庆市用户王敖齐" text_copy = copy.deepcopy(text) st_list = [] for i, v in enumerate(locat_list): durn = len(v) st_post = text_copy.index(v) same
实现及管理一个最大1024个不同令牌桶(通过数组管理也可通过链表管理) 头文件:mytbf.h #ifndef __MYTBF_H__#define __MYTBF_H__ #define MAXCOUNT 1024 //设置最大令牌桶数 typedef void tbf_st; //定义数据类型 tbf_st *mytbf_init(int cps,int burst); //初始化令牌桶in