nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
比赛链接https://codeforces.com/contest/1551
1. A. Polycarp and Coins1.1. 题意给你一个数n,你要把他拆为$c_1+2c_2$的形式,你需要最小化$c_1$和$c_2$的差
1.2. 做法对模3的余数进行分类讨论
1.3. 代码123456789101112131415161718192021222324#include <bits/stdc++.h>using namespace std;int main() { std::ios::sync_with_stdio(false); cin.tie(); int step; cin >> step; while (step--) { int n; cin >> n; if (n % 3 == 0) { cout << n / 3 << " " << n / 3 << endl; } else if (n % 3 == 1) { cout << n / 3 + 1 << " " << n / 3 << endl; } else { cout << n / 3 << " " << n / 3 + 1 << endl; } }}
阅读全文
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
UML
统一建模语言(英语:Unified Modeling Language,缩写 UML)是非专利的第三代建模和规约语言。UML是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。
摘自: 维基百科,自由的百科全书
类图类图主要描述的是类与类之间的关系,这些关系分为泛化关系(generalization)、实现关系(realize)、聚合关系(aggregation)、组合关系(composition)、关联关系(association)、依赖关系(dependency)
泛化关系泛化即类的继承,自行车继承车,猫继承动物,
所以自行车是车的泛化,猫是动物的泛化,男人是人的泛化 (箭头应该是空心)
1234classDiagram 车 <|-- 自行车 动物 <|-- 猫 人 <|-- 男人
1234classDiagram 车 <|-- 自行车 动物 <|-- 猫 人 <|-- 男人
阅读全文
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
Java常见异常1234567891011classDiagram Object <|-- Throwable Throwable <|-- Error Throwable <|-- Exception Error <|-- OutOfMemoryError Error <|-- NoClassDefFoundError Error <|-- StackOverflowError Exception <|-- IOException Exception <|-- RuntimeException RuntimeException <|-- NullPointerException RuntimeException <|-- IndexOutOfBoundsException
NoClassDefFoundError 异常原因处理
阅读全文
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
比赛链接VK Cup 2021 - Elimination (Engine)
1. A. Binary Decimal1.1. 题意给你一个十进制数,你要把它拆成多个只由0和1组成的十进制数之和,问最少拆几个。
1.2. 做法答案就是十进制数每个位上的数中的最大值
1.3. 代码1234567891011121314151617181920#include <bits/stdc++.h>using namespace std;int main() { std::ios::sync_with_stdio(false); cin.tie(); int n; cin >> n; while (n--) { int x; cin >> x; int mx = 0; while (x) { mx = max(mx, x % 10); x /= 10; } cout << mx << endl; }}
阅读全文
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
题目大意:你需要计算有多少对满足长度为n的排列$p$和$q$,满足$p$字典序>$q$ 且 $inv(p)<inv(q)$,答案取模
$inv$ 为逆序对个数
做法:设$f(i,j)$为长度为$i$、逆序对个数为$j$的排列的个数 , 考虑第一个数字为$t$
$f(i,j) = \sum_{t \in [1,i]} f(i-1,j-t+1)$
一个填$u$,另一个填$v$ $u<v$
$$\begin{aligned}ans[i] \&= i * ans[i-1] + \sum_{1<=u<v<=i, x+u>y+v} f(i-1,x)\cdot f(i-1,y) \&= i * ans[i-1] + \sum_{x-y>v-u, 1<=u<v<=i} f(i-1,x)\cdot f(i-1,y) \&= i * ans[i-1] + \sum_{x-y>d, 1<=d<i} (i-d)*f(i-1,x)\cdot f(i-1,y) \&= i * ans[i-1] + \sum_{x,y} f(i-1,x)\cdot f(i-1,y) \cdot \sum_{x-y>d, 1<=d<i} (i-d)\end{aligned}$$
阅读全文