iOS
AtCoder Beginner Contest 288 - C Don't be cycle 删除图中最少的边使得图中无环
C - Don't be cycle 题意 给定一个 n 个顶点,m 条边的无向图,你需要删除图中的一些边使得图中不存在环 问你需要删除的最少边数? 思路 考虑连通块的生成树 一个由 n 个顶点组成的连通块最多只能有 n - 1 条边,不然就会成环。 那么对于本题,我们只需要找到每个连通块的顶点数,那么每个连通块的保留边数已知,最后利用总边数减去保留边数即为答案。 或者说,最终的答案也就是 边数
linux下gcc/g++创建一个共享库项目以及创建一个可执行项目动态链接该共享库
1.先确保有g++命令 2.创建一个c++项目目录,并cd到该目录 3.创建共享库头文件:dynamic_so.h #ifndef __TEST__ #define __TEST__ int testFun(int a, int b); #endif 4.创建对应共享库的实现文件:dynamic_so.cpp #include "dynamic_so.h" int testFun(int a
深度学习(Lenet网络)
业余时间重新学习一下深度学习,先从基础网络开始,一点一点积累。 Lenet网络模型: 下面程序中输入的数据是28*28的,结构和原始稍微有点不一样。 训练代码: 测试代码: 将pth模型转为onnx模型: 安装netron可以查看onnx模型。 下面利用c++做测试: 测试数据下载地址:https://pan.baidu.com/s/1lrOfLyYbz94C9IoFv0
daimayuan249 | 旅行商(状压, dp, 剪枝)
不难写出转移方程, (f_{i, j})表示此时所走过的状态pattern为i, 目前所在城市为j. 则转移方程为: [f_{i, j} = min{f_{i, j}, f_{i - 2^k, k} + a_{k, j}} ]k为合法的前继城市, 则(i - 2^k)就是合法的前继状态(当然这题写push型转移也可以, wls就写的push型转移) 最后可以看情况进行剪枝(状压枚举和dfs一样,
12 pinctrl 和 gpio 子系统实验
一、pinctrl 子系统 1. 什么是 pinctrl 子系统? 首先回顾一下如何初始化 LED 所使用的 GPIO: ①、修改设备树,添加相应的节点,节点里面重点是设置 reg 属性, reg 属性包括了 GPIO相关寄存器。 ②、获取 reg 属性中 GPIOI_MODER、 GPIOI_OTYPER、 GPIOI_OSPEEDR、 GPIOI_PUPDR和 GPIOI_BSRR 这些寄
C++11新特性——1.1-1.3 字符串原始字面量,超长整型long long,类成员变量的快速初始化
1.1 字符串原始字面量 1.2 超长整型long long 1.3 类成员变量的快速初始化 1.1 原始字面量 链接:https://subingwen.cn/cpp/R/ 语法 R"xxx(原始字符串)xxx" 原始字面量 表示 固定的值。 原子字面量 两大类型:数字类型,字符串类型 (一个小补充)多行字符串的空格问题: #include<iostream> #inc
P1216 [USACO1.5] [IOI1994]数字三角形 Number Triangles
P1216 [USACO1.5] [IOI1994]数字三角形 Number Triangles 一个DP题,不是贪心!!! 话不多说,上代码
C++项目实战之演讲比赛流程管理系统
演讲比赛流程管理系统 1. 演讲比赛程序需求 1.1 比赛规则 学校举行一场演讲比赛,共有12个人参加。比赛共两轮,第一轮为淘汰赛,第二轮为决赛 每名选手都有对应的编号,如 10001 ~ 10012 比赛方式:分组比赛,每组6个人 第一轮分为两个小组,整体按照选手编号进行抽签后顺序演讲 10个评委分别给每名选手打分,去除最高分和最低分,求得平均分为本轮选手的成绩 当小组演
比较两个文件是否相同的办法
原本是朴素的遍历写法,后面改为mmap后速度提升飞快(大部分时候一秒以内可以出结果)。可以用于比较两个文件内容是否相同,包括图片也可以(图片用open函数打开后是一堆乱码,相当于比较乱码)。Talk is cheap, show me your code。 #include <iostream> #include <fstream> #include &l
Mike and strings 题解
题目传送门 一道字符串题。 由于 (n) 非常小,可以暴力枚举字符串。我们可以枚举其中一个字符串 (s_i),然后让其他的字符串变成 (s_i),最后记录一下次数,取一个最小值即可。 在枚举第二个字符串的时候可以将它再复制一份自己到后面,然后可以用 find 函数来统计。当然,如果找不到,这个字符串永远不可能变成 (s_i),输出 (-1)。 Code
daimayuan252 | 摸鱼(状压, 枚举, 小技巧)
题目很straightforward的, 看到n范围很小考虑状压, 暴力枚举所有的可能pattern. 第一种做法, 暴力枚举是(O(2^n))的, 然后check函数判断是(O(n^2))的, 一共是(O(n^22^n))的, 可以通过. 第二种做法, 我们考虑把判断pattern是否合法的限制条件也压成二进制串, 那么我们比对条件就变成(O(1)), check函数判断变成 (O(n)), 总
C++快速入门 第四十八讲:向量和容器2
迭代器(iterator)是一种功能非常有限,却非常实用的函数,提供一些基本操作符。其是个所谓的智能指针,具有遍历复杂数据结构的能力。 实例:迭代器指针应用
C++快速入门 第四十七讲:容器和算法
C++标准库提供的向量(vector)类型从根本上解决了数组先天不足的问题(内存固定,如果不用那么多内存编译器也会为其分配) 我们用不着对一个向量能容纳多少元素做出限定,因为向量可以动态地随着你往它里面添加元素而无限增大。还可以用它的size()方法查知某给定向量的当前长度(即包含的元素个数);用push_back()方法往它里面添加东西: 实例:向量容器应用
[AGC061C] First Come First Serve 题解
题意 有两个长度为 (n) 的正整数列 (A,B)。表示数 (i) 可以填到 (A_i) 或 (B_i) 两个位置中的一个。问删去空位之后可以形成的排列种数。 ((1 le n le 5 times 10^5),(A_i,B_i) 取遍 (left[1, 2nright]) 且单调递增)。 题解 首先可以发现填数的方案数为 (2^n),发现会计算进重复情况,考虑什么时候会有重复情况,如果 (for
[THUPC2022 初赛] 造计算机
题目传送门 更好的阅读体验 思路 结论:如果序列原先就合法,答案为 (0);否则,最多使用两个寄存器。 我们对 (i rightarrow a_i) 建边得到若干个环,我们单独考虑一个环如何操作。 对于一个长度为 (4) 的数列,再包含两个寄存器,设两个寄存器的值分别为 (x,y)。 显然 (4,1,3) 组成了一个环,我们对其进行一些操作,使得他们回到他们想要到达的位置,即箭头指向的位置。
StatefulWidget 的生命周期
https://zhuanlan.zhihu.com/p/500617966 安卓 iOS flutter 在北京的灯中,有一盏是我家的。这个梦何时可以实现?哪怕微微亮。北京就像魔鬼训练营,有能力的留,没能力的走……
The 2022 ICPC Asia Regionals Online Contest (II) EJFB
The 2022 ICPC Asia Regionals Online Contest (II) E An Interesting Sequence 232323232323 323232323232 J A Game about Increasing Sequences 能拿的区间奇偶性判断 F Infinity Tree 记录每一轮产生儿子的上一轮数量, 记录产生 (u) 是第 (tu)