'commit'
This commit is contained in:
45
TangDou/Mkx/2024J2/.vscode/.clang-format
vendored
Normal file
45
TangDou/Mkx/2024J2/.vscode/.clang-format
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
---
|
||||
BasedOnStyle: LLVM
|
||||
---
|
||||
Language: Cpp
|
||||
AccessModifierOffset: -4
|
||||
|
||||
BreakBeforeBraces: Attach
|
||||
|
||||
# 对齐连续的尾随的注释
|
||||
AlignTrailingComments: true
|
||||
AllowAllConstructorInitializersOnNextLine: false
|
||||
# 允许短的块放在同一行
|
||||
AllowShortBlocksOnASingleLine: true
|
||||
# 允许短的case标签放在同一行
|
||||
AllowShortCaseLabelsOnASingleLine: false
|
||||
# 允许短的函数放在同一行: None, InlineOnly(定义在类中), Empty(空函数), Inline(定义在类中,空函数), All
|
||||
AllowShortFunctionsOnASingleLine: Empty
|
||||
# 允许短的lambda放在同一行
|
||||
AllowShortLambdasOnASingleLine: Empty
|
||||
# 允许短的if语句保持在同一行
|
||||
AllowShortIfStatementsOnASingleLine: true
|
||||
# 允许短的循环保持在同一行
|
||||
AllowShortLoopsOnASingleLine: true
|
||||
AlwaysBreakBeforeMultilineStrings: false
|
||||
BraceWrapping:
|
||||
AfterClass: true
|
||||
AfterControlStatement: Always
|
||||
AfterEnum: true
|
||||
AfterFunction: true
|
||||
AfterStruct: true
|
||||
AfterUnion: true
|
||||
AfterExternBlock: true
|
||||
BeforeCatch: true
|
||||
BeforeElse: true
|
||||
|
||||
CommentPragmas: "^ NOLINT:"
|
||||
IndentWidth: 4
|
||||
PointerAlignment: Right
|
||||
SortIncludes: false
|
||||
SortUsingDeclarations: false
|
||||
|
||||
SpacesBeforeTrailingComments: 1
|
||||
SpacesInContainerLiterals: false
|
||||
Standard: Cpp11
|
||||
TabWidth: 4
|
||||
25
TangDou/Mkx/2024J2/.vscode/c_cpp_properties.json
vendored
Normal file
25
TangDou/Mkx/2024J2/.vscode/c_cpp_properties.json
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Win32",
|
||||
"compilerArgs": [
|
||||
"-fexec-charset=GBK"
|
||||
],
|
||||
"includePath": [
|
||||
"${workspaceFolder}/**",
|
||||
"C:/TDM-GCC-64/lib/gcc/x86_64-w64-mingw32/10.3.0/**",
|
||||
"C:/TDM-GCC-64/x86_64-w64-mingw32/include/**"
|
||||
],
|
||||
"defines": [
|
||||
"_DEBUG",
|
||||
"UNICODE",
|
||||
"_UNICODE"
|
||||
],
|
||||
"compilerPath": "C:/TDM-GCC-64/bin/gcc.exe",
|
||||
"cStandard": "c11",
|
||||
"cppStandard": "c++17",
|
||||
"intelliSenseMode": "gcc-x64"
|
||||
}
|
||||
],
|
||||
"version": 4
|
||||
}
|
||||
5
TangDou/Mkx/2024J2/.vscode/extensions.json
vendored
Normal file
5
TangDou/Mkx/2024J2/.vscode/extensions.json
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"recommendations": [
|
||||
"MS-CEINTL.vscode-language-pack-zh-hans"
|
||||
]
|
||||
}
|
||||
28
TangDou/Mkx/2024J2/.vscode/launch.json
vendored
Normal file
28
TangDou/Mkx/2024J2/.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
// https://github.com/Microsoft/vscode-cpptools/blob/master/launch.md
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示
|
||||
"type": "cppdbg", // 配置类型,cppdbg对应cpptools提供的调试功能;可以认为此处只能是cppdbg
|
||||
"request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
|
||||
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe", // 将要进行调试的程序的路径
|
||||
"args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
|
||||
"stopAtEntry": false, // 设为true时程序将暂停在程序入口处,相当于在main上打断点
|
||||
"externalConsole": false,
|
||||
"cwd": "${fileDirname}\\", // 调试程序时的工作目录,此为工作区文件夹;改成${fileDirname}可变为文件所在目录
|
||||
"environment": [], // 环境变量
|
||||
"internalConsoleOptions": "neverOpen", // 如果不设为neverOpen,调试时会跳到“调试控制台”选项卡,你应该不需要对gdb手动输命令吧?
|
||||
"MIMode": "gdb", // 指定连接的调试器,可以为gdb或lldb。但我没试过lldb
|
||||
"miDebuggerPath": "gdb.exe", // 调试器路径,Windows下后缀不能省略,Linux下则不要
|
||||
"setupCommands": [
|
||||
{ // 模板自带,好像可以更好地显示STL容器的内容,具体作用自行Google
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "-enable-pretty-printing",
|
||||
"ignoreFailures": false
|
||||
}
|
||||
],
|
||||
"preLaunchTask": "Compile" // 调试会话开始前执行的任务,一般为编译程序。与tasks.json的label相对应
|
||||
}
|
||||
]
|
||||
}
|
||||
122
TangDou/Mkx/2024J2/.vscode/settings.json
vendored
Normal file
122
TangDou/Mkx/2024J2/.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,122 @@
|
||||
{
|
||||
"files.defaultLanguage": "cpp", // ctrl+N新建文件后默认的语言
|
||||
"editor.formatOnType": true, // 输入分号(C/C++的语句结束标识)后自动格式化当前这一行的代码
|
||||
"editor.suggest.snippetsPreventQuickSuggestions": false, // clangd的snippets有很多的跳转点,不用这个就必须手动触发Intellisense了
|
||||
"editor.acceptSuggestionOnEnter": "on", // 我个人的习惯,按回车时一定是真正的换行,只有tab才会接受Intellisense
|
||||
"code-runner.runInTerminal": true, // 设置成false会在“输出”中输出,无法输入
|
||||
"code-runner.saveFileBeforeRun": true, // run code前保存
|
||||
"code-runner.preserveFocus": true, // 若为false,run code后光标会聚焦到终端上。如果需要频繁输入数据可设为false
|
||||
"code-runner.clearPreviousOutput": false, // 每次run code前清空属于code runner的终端消息,默认false
|
||||
"code-runner.ignoreSelection": true, // 默认为false,效果是鼠标选中一块代码后可以单独执行,但C是编译型语言,不适合这样用
|
||||
//配置为使用LLVM进行代码格式化
|
||||
"files.autoSave": "afterDelay",
|
||||
"editor.formatOnSave": true,
|
||||
"[cpp]": {
|
||||
"editor.defaultFormatter": "xaver.clang-format"
|
||||
},
|
||||
"[markdown]": {
|
||||
"editor.quickSuggestions": {
|
||||
"other": true,
|
||||
"comments": true,
|
||||
"strings": true
|
||||
}
|
||||
},
|
||||
"files.associations": {
|
||||
"array": "cpp",
|
||||
"atomic": "cpp",
|
||||
"*.tcc": "cpp",
|
||||
"cctype": "cpp",
|
||||
"clocale": "cpp",
|
||||
"cmath": "cpp",
|
||||
"cstdarg": "cpp",
|
||||
"cstddef": "cpp",
|
||||
"cstdint": "cpp",
|
||||
"cstdio": "cpp",
|
||||
"cstdlib": "cpp",
|
||||
"cwchar": "cpp",
|
||||
"cwctype": "cpp",
|
||||
"deque": "cpp",
|
||||
"unordered_map": "cpp",
|
||||
"vector": "cpp",
|
||||
"exception": "cpp",
|
||||
"algorithm": "cpp",
|
||||
"memory": "cpp",
|
||||
"memory_resource": "cpp",
|
||||
"optional": "cpp",
|
||||
"string": "cpp",
|
||||
"string_view": "cpp",
|
||||
"system_error": "cpp",
|
||||
"tuple": "cpp",
|
||||
"type_traits": "cpp",
|
||||
"utility": "cpp",
|
||||
"fstream": "cpp",
|
||||
"initializer_list": "cpp",
|
||||
"iosfwd": "cpp",
|
||||
"iostream": "cpp",
|
||||
"istream": "cpp",
|
||||
"limits": "cpp",
|
||||
"new": "cpp",
|
||||
"ostream": "cpp",
|
||||
"sstream": "cpp",
|
||||
"stdexcept": "cpp",
|
||||
"streambuf": "cpp",
|
||||
"typeinfo": "cpp",
|
||||
"valarray": "cpp",
|
||||
"cassert": "cpp",
|
||||
"cerrno": "cpp",
|
||||
"cfloat": "cpp",
|
||||
"chrono": "cpp",
|
||||
"ciso646": "cpp",
|
||||
"climits": "cpp",
|
||||
"complex": "cpp",
|
||||
"csetjmp": "cpp",
|
||||
"csignal": "cpp",
|
||||
"cstring": "cpp",
|
||||
"ctime": "cpp",
|
||||
"cuchar": "cpp",
|
||||
"numeric": "cpp",
|
||||
"ratio": "cpp",
|
||||
"version": "cpp",
|
||||
"bitset": "cpp",
|
||||
"regex": "cpp",
|
||||
"random": "cpp",
|
||||
"unordered_set": "cpp",
|
||||
"list": "cpp",
|
||||
"any": "cpp",
|
||||
"functional": "cpp",
|
||||
"mutex": "cpp",
|
||||
"shared_mutex": "cpp",
|
||||
"thread": "cpp",
|
||||
"variant": "cpp",
|
||||
"map": "cpp",
|
||||
"scoped_allocator": "cpp",
|
||||
"future": "cpp",
|
||||
"iomanip": "cpp",
|
||||
"forward_list": "cpp",
|
||||
"bit": "cpp",
|
||||
"ccomplex": "cpp",
|
||||
"cfenv": "cpp",
|
||||
"charconv": "cpp",
|
||||
"cinttypes": "cpp",
|
||||
"codecvt": "cpp",
|
||||
"condition_variable": "cpp",
|
||||
"cstdalign": "cpp",
|
||||
"cstdbool": "cpp",
|
||||
"ctgmath": "cpp",
|
||||
"set": "cpp",
|
||||
"iterator": "cpp",
|
||||
"filesystem": "cpp",
|
||||
"ios": "cpp",
|
||||
"locale": "cpp",
|
||||
"queue": "cpp",
|
||||
"stack": "cpp",
|
||||
"typeindex": "cpp",
|
||||
"compare": "cpp",
|
||||
"concepts": "cpp",
|
||||
"coroutine": "cpp",
|
||||
"numbers": "cpp",
|
||||
"ranges": "cpp",
|
||||
"span": "cpp",
|
||||
"stop_token": "cpp"
|
||||
},
|
||||
}
|
||||
40
TangDou/Mkx/2024J2/.vscode/tasks.json
vendored
Normal file
40
TangDou/Mkx/2024J2/.vscode/tasks.json
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
// https://code.visualstudio.com/docs/editor/tasks
|
||||
{
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "Compile", // 任务名称,与launch.json的preLaunchTask相对应
|
||||
"command": "g++", // 要使用的编译器,C++用g++
|
||||
"args": [
|
||||
"${file}",
|
||||
"-o", // 指定输出文件名,不加该参数则默认输出a.exe,Linux下默认a.out
|
||||
"${fileDirname}\\${fileBasenameNoExtension}.exe",
|
||||
"-g", // 生成和调试有关的信息
|
||||
"-Wall", // 开启额外警告
|
||||
"-static-libgcc", // 静态链接libgcc,一般都会加上
|
||||
"-fexec-charset=GBK", // 生成的程序使用GBK编码,不加这一条会导致Win下输出中文乱码
|
||||
"-std=c++14", // C++最新标准为c++17,或根据自己的需要进行修改
|
||||
], // 编译的命令,其实相当于VSC帮你在终端中输了这些东西
|
||||
"type": "process", // process是vsc把预定义变量和转义解析后直接全部传给command;shell相当于先打开shell再输入命令,所以args还会经过shell再解析一遍
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true // 不为true时ctrl shift B就要手动选择了
|
||||
},
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always", // 执行任务时是否跳转到终端面板,可以为always,silent,never。具体参见VSC的文档
|
||||
"focus": false, // 设为true后可以使执行task时焦点聚集在终端,但对编译C/C++来说,设为true没有意义
|
||||
"panel": "shared" // 不同的文件的编译信息共享一个终端面板
|
||||
},
|
||||
},
|
||||
{
|
||||
"label": "commit gitee",
|
||||
"type": "shell",
|
||||
"command": "D:\\python\\一键推拉.cmd",
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
},
|
||||
}
|
||||
]
|
||||
}
|
||||
42
TangDou/Mkx/2024J2/1_1.cpp
Normal file
42
TangDou/Mkx/2024J2/1_1.cpp
Normal file
@@ -0,0 +1,42 @@
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
// vector<int> a = {2, 2, 2, 2};
|
||||
// vector<int> a = {4, 2};
|
||||
// vector<int> a = {5, 4, 2};
|
||||
vector<int> a = {5, 4, 2, 7, 3, 4, 6, 7};
|
||||
// 2 4 4 4 5 6 7 7
|
||||
// 2 3 3 3 4 5 6 6
|
||||
// 2 2 2 2 3 4 5 5
|
||||
// 2 1 1 1 2 3 4 4
|
||||
|
||||
// 最小mi1,次小 mi2
|
||||
// mi2-mi1+1
|
||||
|
||||
int n = a.size();
|
||||
int res;
|
||||
|
||||
void print() {
|
||||
// 输出
|
||||
for (int i = 0; i < n; i++) cout << a[i] << " ";
|
||||
cout << endl;
|
||||
}
|
||||
|
||||
int main() {
|
||||
while (true) {
|
||||
// 由小到大排序
|
||||
sort(a.begin(), a.end());
|
||||
// 贪心策略:让参加考试数目少的去监考
|
||||
print();
|
||||
// 最小a[0]
|
||||
if (a[0] == 0) {
|
||||
res += a[n - 1];
|
||||
break;
|
||||
}
|
||||
// 让最少的去监考,让其它人去考试
|
||||
for (int i = 1; i < n; i++) a[i]--;
|
||||
// 多了一次考试
|
||||
res++;
|
||||
}
|
||||
cout << "res=" << res << endl;
|
||||
return 0;
|
||||
}
|
||||
33
TangDou/Mkx/2024J2/1_2.cpp
Normal file
33
TangDou/Mkx/2024J2/1_2.cpp
Normal file
@@ -0,0 +1,33 @@
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
const int N = 1e6 + 10;
|
||||
// vector<int> a = {2, 2, 2, 2};
|
||||
// vector<int> a = {4, 2};
|
||||
// vector<int> a = {5, 4, 2};
|
||||
vector<int> a = {5, 4, 2, 7, 3, 4, 6, 7};
|
||||
int n = a.size();
|
||||
int res;
|
||||
void print() {
|
||||
// 输出
|
||||
for (int i = 0; i < n; i++) cout << a[i] << " ";
|
||||
cout << endl;
|
||||
}
|
||||
|
||||
int main() {
|
||||
while (true) {
|
||||
// 由小到大排序
|
||||
sort(a.begin(), a.end());//N*LogN
|
||||
print();
|
||||
// 最小a[0],次小a[1]
|
||||
if (a[0] == 0) {
|
||||
res += a[n - 1];
|
||||
break;
|
||||
}
|
||||
// 利用最小与次小的关系,可以减少循环的次数
|
||||
int cha = a[1] - a[0] + 1; // 比如:2 4,那么 2 3->2 2->2 1
|
||||
for (int i = 1; i < n; i++) a[i] -= cha;
|
||||
res += cha;
|
||||
}
|
||||
cout << "res=" << res << endl;
|
||||
return 0;
|
||||
}
|
||||
29
TangDou/Mkx/2024J2/1_3.cpp
Normal file
29
TangDou/Mkx/2024J2/1_3.cpp
Normal file
@@ -0,0 +1,29 @@
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
// vector<int> a = {2, 2, 2, 2};
|
||||
// vector<int> a = {4, 2};
|
||||
// vector<int> a = {5, 4, 2};
|
||||
vector<int> a = {5, 4, 2, 7, 3, 4, 6, 7};
|
||||
int n = a.size();
|
||||
int res;
|
||||
|
||||
int main() {
|
||||
// 进行一次排序
|
||||
sort(a.begin(), a.end());
|
||||
|
||||
while (true) {
|
||||
// 最小a[0],次小a[1]
|
||||
if (a[0] == 0) {
|
||||
res += a[n - 1];
|
||||
break;
|
||||
}
|
||||
// 利用最小与次小的关系,可以减少循环的次数
|
||||
int cha = a[1] - a[0] + 1; // 比如:2 4,那么 2 3->2 2->2 1
|
||||
for (int i = 1; i < n; i++) a[i] -= cha;
|
||||
// 重点来了!
|
||||
swap(a[0], a[1]);
|
||||
res += cha;
|
||||
}
|
||||
cout << "res=" << res << endl;
|
||||
return 0;
|
||||
}
|
||||
40
TangDou/Mkx/2024J2/2.cpp
Normal file
40
TangDou/Mkx/2024J2/2.cpp
Normal file
@@ -0,0 +1,40 @@
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
|
||||
const int N = 110;
|
||||
typedef long long LL;
|
||||
int a[N] = {1, 2, 3, 6, 3};
|
||||
int b[N] = {3, 4, 1, 6, 5};
|
||||
int n = 5;
|
||||
|
||||
int k1 = 2, k2 = 3, k = k1 + k2;
|
||||
LL res;
|
||||
|
||||
int main() {
|
||||
priority_queue<int> pq; // 默认创建最大堆
|
||||
|
||||
// 将两个数组的差值绝对值放到最大堆中
|
||||
for (int i = 0; i < n; i++) pq.push(abs(a[i] - b[i]));
|
||||
|
||||
for (int i = 1; i <= k; i++) {
|
||||
int mx = pq.top();
|
||||
pq.pop();
|
||||
if (mx == 0) {
|
||||
if ((k - i) % 2 == 0)
|
||||
cout << 0 << endl;
|
||||
else
|
||||
cout << 1 << endl;
|
||||
exit(0);
|
||||
}
|
||||
pq.push(mx - 1);
|
||||
}
|
||||
// 计算值
|
||||
while (pq.size()) {
|
||||
int mx = pq.top();
|
||||
if (mx == 0) break;
|
||||
pq.pop();
|
||||
res += mx * mx;
|
||||
}
|
||||
cout << res << endl;
|
||||
return 0;
|
||||
}
|
||||
25
TangDou/Mkx/2024J2/2_prepare.cpp
Normal file
25
TangDou/Mkx/2024J2/2_prepare.cpp
Normal file
@@ -0,0 +1,25 @@
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
|
||||
const int N = 110;
|
||||
int a[N] = {1, 2, 3, 6, 3};
|
||||
int b[N] = {3, 4, 1, 6, 5};
|
||||
int n = 5;
|
||||
int k1 = 2, k2 = 3, k = k1 + k2;
|
||||
long long res;
|
||||
|
||||
int main() {
|
||||
// priority_queue<int> pq;
|
||||
priority_queue<int, vector<int>, greater<int>> xq;
|
||||
xq.push(1);
|
||||
xq.push(4);
|
||||
xq.push(8);
|
||||
xq.push(10);
|
||||
|
||||
while (xq.size()) {
|
||||
cout << xq.top() << endl;
|
||||
xq.pop();
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user