PAT 10092021-03-03 13:57:39
PAT 1009
水题,注意乘积系数为0的项不要输出。
另外用G++编译有问题,用clang就没问题,还没找到原因,猜测可能是因为map中初始化的问题。
代码:
#include
#include
#include
#include
using namespace std;
int K = 0;
struct cmp{
bool
HDU5058(set应用)2021-02-23 11:32:49
#include
#include
#include
#include
#include
using namespace std;
int n;
int main(){
while(cin>>n){
setst1;
setst2;
for(int i=1;i<=n;i++){
int
1551. 使数组中所有元素相等的最小操作数
简单模拟题。根据n为奇数偶数可以找到规律,然后分情况讨论即可。
class Solution {
public:
int minOperations(int n) {
int ans = 0;
if(n % 2 == 0) {
for(int i = 0; i < n / 2; i++) {
文章目录
1. 题目2. 解题
1. 题目
给定在 xy 平面上的一组点,确定由这些点组成的任何矩形的最小面积,其中矩形的边不一定平行于 x 轴和 y 轴。
如果没有任何矩形,就返回 0。
示例 1:
输入:[[1,2],[2,1],[1,0],[0,1]]
输出:2.00000
解释:最小面积的矩形出现在 [1,2],[2,1],[1,0
10.072020-11-30 16:05:26
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android
矩阵置零—leetcode732020-11-22 22:02:00
给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。
示例 1:
输入:
[
[1,1,1],
[1,0,1],
[1,1,1]
]
输出:
[
[1,0,1],
[0,0,0],
[1,0,1]
]
示例 2:
输入:
[
[0,1,2,0],
[3,4,5,2],
[1,3,1,5]
]
题目
Given two sets of integers, the similarity of the sets is defined to be Nc/Nt×100%N_c/N_t\times100\%Nc/Nt×100%, where NcN_cNc is the number of distinct common numbers shared by the two sets, and NtN_tNt is the total number of distinct num
BZOJ 2120:数颜色2020-02-06 21:56:28
初始给定一个长度为n的数列,给定m次操作,每次要么询问区间[L,R]中有多少种不同的数字,要么修改一个位置的数值。
n<=1e4,m<=1e4,ai<=1e6
询问区间内有多少种不同的数字容易联想到主席树,这边带修改的话那么就树套树了
先回顾一下如果不带修改怎么做,一种做法是对每个位置维护上一个跟当
删除排序数组中的重复项2020-02-03 18:43:43
题目
解题思路
自己的解题思路
首先当时是这样子思考的,因为只看到需要在原地修改数组这个要求,所以当时想的是使用内置函数erase来删除重复的元素(需要注意的是:erase函数返回的是删除元素之后元素的迭代器),所以代码如下:
int removeDuplicates(vector& nums) {
in
单向队列,双向队列,优先队列的基本用法2020-01-12 20:39:06
1.单向队列,意思就是只能从队列后面加入元素,遵循先进先出原则;
#include
#include
using namespace std;
int main()
{
queueq;
q.push(5)//在队列末尾插入一个元素5;
q.pop()//删除队列的第一个元素;
q.front()//返回队列的第一个元素
Zigzag Iterator2019-12-21 22:52:35
Description
Given two 1d vectors, implement an iterator to return their elements alternately.
Example
Example1
Input: v1 = [1, 2] and v2 = [3, 4, 5, 6]Output: [1, 3, 2, 4, 5, 6]Explanation: By calling next repeatedly until hasNext returns false, the
[SDOI2016] 生成魔咒
Description
初态串为空,每次在末尾追加一个字符,动态维护本质不同的子串数。
Solution
考虑时间倒流,并将串反转,则变为每次从开头删掉一个字符,即每次从后缀集合中删掉一个后缀。
预处理出后缀数组和高度数组后,用平衡树维护所有后缀集合(按照后缀排序),要删除一个后
CCF 模拟题,公共钥匙盒2019-09-14 10:36:02
题目描述:
有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家。每次老师上课前,都从公共钥匙盒里找到自己上课的教室的钥匙去开门,上完课后,再将钥匙放回到钥匙盒中。
钥匙盒一共有N个挂钩,从左到右排成一排,用来挂N个教室的钥匙
Description
最近,阿Q开了一间宠物收养所。收养所提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物。每个领养者都希望领养到自己满意的宠物,阿Q根据领养者的要求通过他自己发明的一个特殊的公式,得出该领养者希望领养的宠物的特点值a(a是一个正整数,a<2^31),而他也给每个处在
SB 题。
写出 DP 方程:\(f_i\) 表示从 \(i\) 跳的最小值。
\(i\) 是叶子就是 \(0\),否则就是选个子树中的 \(v\),\(f_i=\min(f_v+a_ib_v)\)。
至于优化,求出每个子树中的凸包就行了。启发式合并保证复杂度。
复杂度 \(O(n\log^2 n)\)。
没错,我又用了回家路线那又臭又长的写法。
#includ
转载:https://www.cnblogs.com/yelongsan/p/4049698.html
splice()和merge():
splice()有三种调用形式:
第一种: list1.splice(it1, list2).将list2中的所有元素拷贝到list1中。在list1中的起始位置是it1.复制结束后,list2将为空。
第二种调用形式:
list1.splice(it1, list2,
通讯录系统2019-06-15 20:56:29
通讯录系统
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
题目大意:
给定\(n\),\(k\),\(mod\),求随机排列在\(k\)层归并排序下逆序对的期望。
题解
考虑这\(k\)层归并会把序列分成若干个块。
这些块内的顺序是原序列的相对顺序,我们要把这些序列归并起来。
考虑一个块内,每对元素都会有\(\frac{1}{2}\)的概率成为一个逆序对.
所以每个块的贡献就
Watchmen
直接上中文
Descriptions:
钟表匠们的好基友马医生和蛋蛋现在要执行拯救表匠们的任务。在平面内一共有n个表匠,第i个表匠的位置为(xi, yi).
他们需要安排一个任务计划,但是确发现了一些问题很难解决。马医生从第i个表匠到第j个表匠所需要的时间为|xi - xj| + |yi - y
[BJOI2019]排兵布阵2019-05-05 17:49:33
思博题
大力dp就行了
\(O(nms)\)
#include
#include
#include
using namespace std;const int M=2*1e5+10;
typedef long long ll;const int N=110;
int mp[N][N];int dp[M];int s;int n;int m;
map tval;
int main()
{
@Autowired
private StringRedisTemplate stringRedisTemplate;
public static final String prefix = "*";
Set keys = stringRedisTemplate.keys(prefix);
Iterator it1 = keys.iterator();
while (it1