结构体柔性数组(flexible array),C99中,结构体最后一个元素允许是未知大小的数组,这个结构体必须至少有两个成员,这个数组元素必须是最后一个,这种数组叫做[【柔性数组】成员 以下代码,结构体中的int num[ ]可不定义数组的个数,这个元素叫做柔性数组,结构体计算大小(sizeof)时会把int num[
比赛链接: https://atcoder.jp/contests/abc266 C - Convex Quadrilateral 题意: 平面图上有一个四边形,按照逆时针顺序给定四个点的坐标,判断四边形是不是凸的。 思路: 求两条临边的向量积是不是 > 0 即可。 代码: #include <bits/stdc++.h> using namespace std; int main(){ ios::sy
比赛链接: https://codeforces.com/contest/1721 D. Maximum AND 题意: 给定两个序列 \(a\) 和 \(b\),可以调整 \(b\) 中元素的位置,得到序列 \(c\),满足 \(c_i = a_i\) xor \(b_i\),问 \(c_1 \& c_2 \& ... \& c_n\) 最大是多少。 思路: 要让某一位上是 1,那么就要使得序列 \(c\) 中每一
树:n点 n-1边 基环树:n点 n以上边 #include <bits/stdc++.h> using namespace std; const int N = 2e5 + 5, M = N*2; int n, q; int h[N], e[M], ne[M], idx; int fa[N], d[N]; void add (int a, int b) { e[idx] = b, ne[idx] = h[a], h[a] = idx ++; } void topsort ()
一 列编辑: 1.1列编辑模式:ALT键同时垂直选择几列,进入列编辑模式; 1.2列递增:在列编辑模式下,按ALT+C弹出的对话框编辑中设置递增规律、 二 作为其它IDE的内嵌编辑器 2.1作为KEIL的外部编辑器:Tools->custome Tools Menu.. 三结合其它语言编译器组成新的IDE: 1.打开Notepad++: 2
LeetCode — 最小路径和 问题陈述 给定一个 mxn网格 用非负数填充,找到一条从左上角到右下角的路径,该路径最小化沿其路径的所有数字的总和。 笔记: 您只能在任何时间点向下或向右移动。 问题陈述取自: https://leetcode.com/problems/minimum-path-sum 示例 1: Source: LeetCode 输
#1.查看所有数据大小 #1.查询所有数据的大小mysql> use information_schema; mysql> select concat(round(sum(data_length/1024/1024),2),'MB') as data from tables;+---------+| data |+---------+| 51.27MB |+---------+1 row in set (0.01 sec) #2.查看指定数据库的大小
引用自:https://blog.csdn.net/lk142500/article/details/83119029 背景 我们在整理数据或者拼脚本的时候,通常会用到这样的一个场景 比如说上传的工资单中的标题栏为以上的内容,因此,在输入数据库的时候,我们需要把所有这些内容变成字符串,但一个一个操作又非常麻烦,这样如何使用notepa
众所周知: P7075 [CSP-S2020] 儒略日 是一道十分 \(EX\) 的大模拟 作为 \(CSP-S\) \(2020\) 的 \(T1\) 远难于 \(T2\)。 更是有巨佬将过这题的记录放在主页作为自豪的象征。 以前我也略有耳闻,但都没仔细看过题。 于是,今天,我下定决心,要切掉它!(还不是因为算法废了只能练模拟qwq) 于是,\(
前言串口通信是一种异步通信方式,收发双方约定好通信速率,通过两根数据线即可简单的时序全双工数据收发。最常用的串口通信协议由1位起始位 8位数据位 1位停止位组成,总共10位,为了提高通信可靠性,也可在停止位前增加 1位奇偶校验位,但同时也增加可开销,每字节数据需要多传1位二进制数。
KMP算法 作用:用于字符串匹配。 1 准备 前缀:指不包含最后一个字符的所有以第一个字符开头的连续子串。 后缀:指不包含第一个字符的所有以最后一个字符结尾的连续子串。 next[](前缀表):最长前后缀数组。 j是从1开始的; 2 实现 2.1 求next[] //如果相等长度+1 if(needle[i] == needle[j
前言 题目传送门! 更好的阅读体验? 比赛时,这题写了一个 \(O(n^3)\) 算法,然后就过了。 以为是数据水,实际上可以证明时间复杂度是 \(O(n)\) 的。 思路 关键是一个结论:当 \(i < j < k\) 时,若 \(a_i, a_j, a_k\) 单调不降或单调不升,则三元组 \((a_i, i), (a_j, j), (a_k, k)\) 必定是坏
没有十全十美的程序 1、封装工具类 package com.osrmt.util; import org.apache.poi.hssf.usermodel.*; import org.apache.poi.ss.usermodel.*; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; import java.text.SimpleDateFormat;
C语言中static的作用 1 void test() 2 { 3 int b = 1; 4 b++; 5 printf("b=%d\n", b); 6 } 7 int main() 8 { 9 int a = 0; 10 while (a < 5) 11 { 12 test(); 13 a++; 14 } 15 return 0; 16 } 在没有static
Blue and Red Tree 题目链接:luogu AT2377 题目大意 给你一棵树,每次你可以选一条路径,删掉其中的一条边,然后把路径两断点编号在另一个一样点数的图上连边。 然后给你一个要求的树形态,问你是否有方案能让你连出要求的树。 思路 发现不太能下手,考虑一些至少有的条件。 发现至少要有边
前言 本次比赛:初一训练5.21 / 编号531 题目难度中等偏上,有几题比较简单,有两三题较难。 T1 题目:gdfzoj1441 思路: 算是一道暴力题。 由于 \(h_{i, j}\) 范围很小,考虑二分答案。 二分答案的范围应该是 \([0, 110]\)。 对于 chk() 函数,可以暴力枚举所有差为 \(\texttt{mid}\) 的数对,
E 一个暴力是显然的,\(f(i,j,k)\) 表示当前已经使用 \(a\) 的前 \(i\) 位,\(b\) 的前 \(j\) 位,最后一位是 \(a\) 还是 \(b\) 的。然后 \(O(n^2)\) 枚举起点跑下去即可。为啥这个是对的呢?考虑每次转移都是加 \(1/0\),显然之后在约束之下的转移本质不同。 第一眼我的想法是从如何对 \(2
confluence-wiki 页面中文乱码 编辑过程中内容显示正常,保存后查看中文内容就会显示“?” 百度搜索之后,得知是my.cnf配置文件不匹配。 问题原因:数据库中数据的格式不对 解决方法: 在mysql中输入以下命令 mysql> show variables like 'char%';+--------------------------+--------
1. 确认待升级的版本是否存在,若存在,则跳转到第4步 sudo apt-cache search gcc-9 2. 不存在则需要添加 ubuntu toolchain的test源 sudo add-apt-repository ppa:ubuntu-toolchain-r/test 3. 由于默认源在国内速度太慢,建议修改到ustc # 备份 sudo cp /etc/apt/sources.list.d/u
字符串匹配算法 时间复杂度O(n+m) #include<bits/stdc++.h> using namespace std; #define ll long long #define endl "\n" #define sf scanf #define pf printf #define fi first #define se second #define pb push_back #define pll pair<ll,ll> const int mod
//常规时间复杂度为 n*m // #include<bits/stdc++.h> // using namespace std; // int main() { // int n, m; // cin >> n >> m; // vector nums; // for (int i = 0; i < n; i++) { // int temp; // cin >> temp; //
案例1:无静态库、动态库参与 文件目录结构1 假设include目录存放头文件data.h包含函数声明,src目录存放对应的data.cpp文件包含函数定义、以及一个全局变量。main.cpp存放在文件根目录、包含main函数入口。 代码内容 常规编译指令 g++ main.cpp src/data.cpp -Iinclude -o main
https://www.acwing.com/problem/content/1583/ 注意: 三维的时候有六个方向。 #include <iostream> #include <cstring> #include <queue> using namespace std; const int M = 1286, N = 128, L = 60; int m, n, l, T; int g[L][M][N]; struct Node { int x, y,
解析: 主要是char string 与 int 的转换 用map即可 构造出关系矩阵就好了 #include <bits/stdc++.h> using namespace std; map<string, int> index; map<string, int> hashmap; map<int, string> unhashmap; map<string, int> vis; vector<stri
https://www.acwing.com/problem/content/1624/ 写法1 #include <iostream> #include <cstring> #include <algorithm> #include <set> using namespace std; struct node { int value, cnt; bool operator < (const node& t) const