首页 > TAG信息列表 > it1
【模板】动态凸包
好诶,我luogu帮我成功的交了一回codeforces了 \(\textrm{CF70D - Professor's task}\) #include <stdio.h> #include <map> using namespace std; #define llt long long int map<int,int> up, dn; llt cross(int a,int b,int x,int y) { return (llt)a*y-(llt)"蔚来杯"2022牛客暑期多校训练营4
链接 \(A:Task Computing\) 微扰法可以证明,若 \(i\) 排在 \(j\) 前面,则 \(w_i(p_j-1) < w_j(p_i-1)\) 。 先将其按该方法排序,我们只需要选出 \(m\) 个按顺序排即可。 \(m\) 很小,考虑 \(dp\) ,\(f_{i,j}\) 表示从前 \(i\) 个中选出 \(j\) 个的最大值。 但从前向后还有 \(p\) 会对后vector 建立二维数组
方法一: #include <iostream> #include <vector> using namespace std; void test01() { //创建一个外层容器 vector<vector<int>>v; //创建一些内层容器,并赋值 vector<int>v1(10,1); vector<int>v2(10,2); vector<int>v3(10,3); //将内层小容器插入到大容器之中,类似于珂朵莉树
这是什么? \(\quad\)这是一种基于 set 的暴力数据结构。 什么时候用? \(\quad\)当操作中有:推平一段区间,区间赋值,使得一段区间变得一样,保证数据随机 等字眼时。 珂朵莉树的初始化 模板题 Link struct node{ int l,r; mutable LL v; ndoe(int L,int R,LL V=0):l(L),r(R),vHZNU训练补题记录
[https://codeforces.com/group/DOZ49JViPG/contest/353311/problem/L](L. Lengths and Periods) 题意:给你一个字符串,问 最长循环串/循环节 最大为多少 解析:实际上就是求 i 位到末尾与 j 位到末尾的字符串的最长公共前缀除以 j-i+1 我们可以将原串翻转,lcp实际上就是两个节点的LCA,机器学习-实验一
实验一 逻辑回归 一、实验目的 加深对逻辑回归算法的理解和认识。 掌握基于逻辑回归的二分类算法和基于 softmax 的多分类算法的设计方法。 二、实验原理 先拟合决策边界(不局限于线性,还可以是多项式),再建立这个边界与分类的概率联系,从而得到了二分类情况下的概率NOIP 模拟 $36\; \rm Cicada 拿衣服$
题解 \(by\;zj\varphi\) 发现右端点固定时,左端点的 \(min-max\) 单调递减,且对于 \(or\) 和 \(and\) 相减,最多有 \(\rm2logn\)个不同的值,且相同的值构成一段连续的区间。 那么就可以在最远的,符合答案的第一个区间二分答案。 具体实现可以用一个链表,每次扫一遍合并,并倒着查合法区间,noip模拟31
A.Game 发现最高得分可以直接贪心得到答案.. 然后我们去满足字典序最大.. 一开始想的是从后往前字典序最小就可以,然后同时刚好满足一些值,但是发现手写几个例子就Hack了.. 首先我们发现,对于一个前面的数\(A\),ta所被对应的数\(B\)越大,那么后面能满足的个数一定是不会上升的.. 所以二LG 题解 CF453E Little Pony and Lord Tirek
目录前置芝士DescriptionSolutionCode 前置芝士 主席树 STL-set Description 你有 \(n\) 匹小马,分别标号 \(1 \sim n\),每个小马有三个属性 \(s_i, m_i, r_i\) 分别表示初始魔力,最大魔力,单位时间增加的魔力。然后有 \(m\) 次询问,每次询问给你三个值 \(t, l, r\) 表示在 \(t\) 时珂朵莉树学习笔记
声明:对于这部分知识我也是从网上学习的,若有雷同绝非有意抄袭。 0x01 简介 珂朵莉树,又名 ODT,出自 CF896C 的正解。主要处理区间修改、查询问题。 是一种基于std::set的 ”指代一种特定的基于数据随机的算法“,它不是数据结构,这点 lxl 先生本人也承认了。 它的适用范围狭小,当且仅当以map和struct的多重嵌套
❤️强烈推荐人工智能学习网站❤️ 之前聊到了map和struct的单重嵌套,总感觉不够刺激,今天来玩一下多重嵌套。 struct Node1 { int data1; int data2; }; struct Node { int key; map<int,Node1> myMap1; }; //map中有Node,Node中有myMap1,myMap1中有Node1,数据结构 02-线性结构2 一元多项式的乘法与加法运算 (20 分)
设计函数分别求两个一元多项式的乘积与和。 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系UVA1339 - Ancient Cipher NEERC 2004
题意: 给定两个长度相同且不超过100的字符串,判断是否能把其中一个字符串的各个字母重排,然后对26个字母做一个一一映射,使得两个字符串相同。例如,JWPUDJSTVP重排后可以得到WJDUPSJPVT,然后把每个字母映射到它前一个字母(B->A,C->B,…,Z->Y,A->Z),得到VICTORIOUS。输入两个字符串,输出YES或者NPAT 1009
PAT 1009 水题,注意乘积系数为0的项不要输出。 另外用G++编译有问题,用clang就没问题,还没找到原因,猜测可能是因为map中初始化的问题。 代码: #include<iostream> #include<map> #include<algorithm> #include<iomanip> using namespace std; int K = 0; struct cmp{ boolHDU5058(set应用)
#include<iostream> #include<algorithm> #include<cstring> #include<cmath> #include<set> using namespace std; int n; int main(){ while(cin>>n){ set<int>st1; set<int>st2; for(int i=1;i<=n;i++){ int2020_02_04 LeetCode刷题
1551. 使数组中所有元素相等的最小操作数 简单模拟题。根据n为奇数偶数可以找到规律,然后分情况讨论即可。 class Solution { public: int minOperations(int n) { int ans = 0; if(n % 2 == 0) { for(int i = 0; i < n / 2; i++) {LeetCode 963. 最小面积矩形 II
文章目录 1. 题目2. 解题 1. 题目 给定在 xy 平面上的一组点,确定由这些点组成的任何矩形的最小面积,其中矩形的边不一定平行于 x 轴和 y 轴。 如果没有任何矩形,就返回 0。 示例 1: 输入:[[1,2],[2,1],[1,0],[0,1]] 输出:2.00000 解释:最小面积的矩形出现在 [1,2],[2,1],[1,010.07
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android矩阵置零—leetcode73
给定一个 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] ]1063 Set Similarity (25分)
题目 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 numBZOJ 2120:数颜色
初始给定一个长度为n的数列,给定m次操作,每次要么询问区间[L,R]中有多少种不同的数字,要么修改一个位置的数值。 n<=1e4,m<=1e4,ai<=1e6 询问区间内有多少种不同的数字容易联想到主席树,这边带修改的话那么就树套树了 先回顾一下如果不带修改怎么做,一种做法是对每个位置维护上一个跟当删除排序数组中的重复项
题目 解题思路 自己的解题思路 首先当时是这样子思考的,因为只看到需要在原地修改数组这个要求,所以当时想的是使用内置函数erase来删除重复的元素(需要注意的是:erase函数返回的是删除元素之后元素的迭代器),所以代码如下: int removeDuplicates(vector<int>& nums) { in单向队列,双向队列,优先队列的基本用法
1.单向队列,意思就是只能从队列后面加入元素,遵循先进先出原则; #include <queue> #include <iostream> using namespace std; int main() { queue<int>q; q.push(5)//在队列末尾插入一个元素5; q.pop()//删除队列的第一个元素; q.front()//返回队列的第一个元素Zigzag Iterator
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] 生成魔咒 - 后缀数组,平衡树,STL,时间倒流
[SDOI2016] 生成魔咒 Description 初态串为空,每次在末尾追加一个字符,动态维护本质不同的子串数。 Solution 考虑时间倒流,并将串反转,则变为每次从开头删掉一个字符,即每次从后缀集合中删掉一个后缀。 预处理出后缀数组和高度数组后,用平衡树维护所有后缀集合(按照后缀排序),要删除一个后