ICode9

精准搜索请尝试: 精确搜索
  • 1182. 与目标颜色间的最短距离(二分查找)2022-05-09 00:35:04

    1182. 与目标颜色间的最短距离 给你一个数组 colors,里面有  1、2、 3 三种颜色。 我们需要在 colors 上进行一些查询操作 queries,其中每个待查项都由两个整数 i 和 c 组成。 现在请你帮忙设计一个算法,查找从索引 i 到具有目标颜色 c 的元素之间的最短距离。 如

  • c++deque赋值操作,大小操作,插入和删除,数据存取,数据排序2022-05-08 21:00:50

    赋值操作函数原型:deque& operator=(const deque &deq); //重载等号操作符assign(beg, end); //将[beg, end)区间中的数据拷贝赋值给本身。assign(n, elem); //将n个elem拷贝赋

  • c++vector插入和删除2022-05-08 18:32:58

    函数原型:push_back(ele); //尾部插入元素elepop_back(); //删除最后一个元素insert(const_iterator pos, ele); //迭代器指向位置pos插入元素eleinsert(const_iterator pos, i

  • CF1245F Daniel and Spring Cleaning 题解2022-05-06 22:32:17

    题目大意 给定 \(l,r\) ,求 \(\sum_{x=l}^r\sum_{y=l}^r[x+y=x\oplus y]\) 。 其中 \(0 \le l \le r \le 10^9\) 。 分析 首先对于题目中给出的式子,我们可以对它进行一些转换: \(\sum_{x=l}^r\sum_{y=l}^r[x+y=x\oplus y]\) \(=2\sum_{x=l}^r\sum_{y=x+1}^r[x+y=x\oplus y]+\sum_{x=

  • 【题解】【CF1004F Sonya and Bitwise OR】2022-05-05 19:04:11

    Analysis 显然用线段树来维护。考虑快速求出左右端点分居左右区间的方案数。 首先按位或和是满足单调性的,按位或的数越多,和越大,那么从左到右枚举右端点,左端点的可行范围一定是从左区间的左端点到左区间的某个位置,且这个位置是递增的。 那么我们就有了单次pushup复杂度为O(区间长度

  • 基数排序2022-05-04 20:01:30

    package demo; public class P51 { //基数排序 //思路:数组中最大值位数为k,从个位开始往高位进行k轮(桶排序+填回原数组),每轮以那一位的数字为分桶的依据 public static void main(String[] args) { int[] a = {49, 38, 65, 197, 76, 213, 27, 50}; radixSort(a, getMaxPos(a));

  • 【插头DP】【学习笔记】2022-05-04 12:04:05

    【插头DP】【学习笔记】 Tips: 虽然插头Dp模板是黑的,但其实算法并不难理解,用到的只是轮廓线dp+哈希表而已,比较复杂的是讨论多种情况的转移和位运算,但封装几个函数以后,代码也十分简单了。 模板 Solution 首先考虑状压dp,考虑需要哪些状态,如果仅仅知道每个格子是否有向下伸出的插头是

  • 141. 环形链表(快慢指针)2022-05-04 02:01:17

    1. 环形链表 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递

  • 选择排序的稳定版本与非稳定版本2022-05-02 14:02:16

    选择排序 非稳定版本与稳定版本 排序过程中选择一个比较大(大到小排序)的数,然后把它放到数组中指定的位置;这时候可以直接与数组中指定位置交换数据,但是可能会导致同值的数据的顺序发生改变,这就是所谓的“不稳定”。可以通过下图来理解所谓的“稳定”和“非稳定”。 不稳定排序算法

  • 选择排序的稳定版本与非稳定版本2022-05-01 03:00:13

    选择排序 非稳定版本与稳定版本 排序过程中选择一个比较大(大到小排序)的数,然后把它放到数组中指定的位置;这时候可以直接与数组中指定位置交换数据,但是可能会导致同值的数据的顺序发生改变,这就是所谓的“不稳定”。可以通过下图来理解所谓的“稳定”和“非稳定”。 不稳定排序算法

  • Python去水印方法(无需安装任何库)2022-04-30 13:35:03

    分享一个Python自带库去水印的方法 今天用WPS将PDF转图片,发现没有会员就会自带水印,于是萌生了用Python去水印的想法 from itertools import product from PIL import Image img = Image.open('Your Image Path') width, height = img.size for pos in product(range(width), ra

  • 基础算法2022-04-29 19:00:21

    区间合并: #include <bits/stdc++.h> using namespace std; typedef pair <int,int> pii; vector<pii>pos; void merge(vector<pii>&pos) { vector <pii>ans; sort(pos.begin(),pos.end()); int st=-1e9+10,ed=-1e9+10; for

  • cf1514 D. Cut and Stick2022-04-28 01:01:59

    题意: 给定数组。q 次询问,每次问至少把 \(a[l,r]\) 拆成几个子序列,才能让每个子序列中的众数的出现次数 不大于子序列长度/2上取整 \(n,q\le 3e5, 1\le a_i\le n\) 思路: 绝对众数:出现次数严格大于N/2 如果区间众数不是绝对众数,则答案为1。否则,设绝对众数的出现次数为 x ,把其他所有

  • c++string子串2022-04-24 17:34:02

     string子串 功能描述: 从字符串中获取想要的子串 函数原型: string substr(int pos = 0, int n = npos) const; //返回由pos开始的n个字符组成的字符串 示例: //子串 void test01() { string str = "abcdefg"; string subStr = str.substr(1, 3); cout << "subS

  • Super Mario2022-04-23 18:33:36

    题目链接:https://vjudge.net/problem/HDU-4417#author=634579757 很经典的分块模版题,出错的都是细节问题,考查学生的码力 1 #include<cstdio> 2 #include<cstring> 3 #include<cmath> 4 #include<algorithm> 5 using namespace std; 6 const int maxn=1e5+10; 7 int a[m

  • leetcode 587 安装栅栏2022-04-23 16:01:31

    class Solution { public: int getarea(vector<int>& a, vector<int>& b, vector<int>& c){ int x1 = b[0] - a[0], y1 = b[1] - a[1], x2 = c[0] - a[0], y2 = c[1] - a[1]; return x1 * y2 - x2 * y1; } vector&

  • 牛客华为机试HJ1052022-04-23 09:04:07

    原题传送门 1. 问题描述 2. Solution neg_cnt = 0 pos_sum = 0 pos_cnt = 0 while True: try: n = int(input().strip()) if n < 0: neg_cnt += 1 elif n > 0: pos_sum += n pos_cnt += 1 except:

  • 牛客华为机试HJ972022-04-23 08:31:06

    原题传送门 1. 题目描述 2. Solution import sys if sys.platform != "linux": file_in = open("input/HJ97.txt") sys.stdin = file_in while True: try: n = int(input().strip()) nums = list(map(int, input().strip().split()

  • 洛谷P2880 [USACO07JAN] Balanced Lineup G(树状数组/线段树)2022-04-22 20:32:29

    维护区间最值的模板题。 1.树状数组 1 #include<bits/stdc++.h> 2 //树状数组做法 3 using namespace std; 4 const int N=5e4+10; 5 int m,ma[N],mi[N],n,c[N]; 6 7 int lowbit(int x){ 8 return x&(-x); 9 } 10 11 void ins(int x,int v){ 12 while(x<=n){

  • 每日构造/DP(4.21)2022-04-22 13:02:24

    C - ThREE #include <bits/stdc++.h> #define IOS \ std::ios::sync_with_stdio(false); \ std::cin.tie(0); \ std::cout.tie(0); int main() { IOS; int n; std::cin >> n; std::v

  • CF1398F Controversial Rounds 题解2022-04-21 22:31:52

    Post time: 2021-10-29 18:22:46 题面 贡献一个官方题解做法的详细解释。 首先注意到一个贪心的思路,从前往后如果能够使某一段长度 \(=x\) 就一定会使其 \(= x\) 或 \(\geq x\)。 考虑设一个函数 \(f(pos,x)=npos\) 表示当限制长度为 \(x\) 时,从 \(pos\) 这个位置开始往后,第一个

  • 省选日记 Day11 - Day152022-04-21 17:34:47

    省选日记 Day \(11\) - Day \(15\) Day \(11\) Apr 14, 2022, Thursday SDOI2019 染色 一开始一眼看出 \(O(n^3)\) 的做法, 设 \(f_{i, j, k}\) 表示计算到第 \(i\) 列, \((i, 1)\) 为颜色 \(j\), \((i, 2)\) 为颜色 \(k\) 的方案数. 统计 \(U_{i, j}\) 作为所有 \(f_{i, j, x}\)

  • 【算法模板】离线树状数组(区间查询小于等于x的数个数)2022-04-18 21:33:56

    只需要把询问按x升序排序,在查询的过程中不断让树状数组把<=x元素的下标处+1即可。(为此,把序列按val排序) #include <bits/stdc++.h> using namespace std; const int N = 1e5 + 10; pair<int, int> a[N]; #define val first #define pos second struct query { int l, r, x, p

  • POJ1077 Eight(A* + 康托展开)2022-04-16 13:35:14

    前置知识:康托展开 和 康托逆展开 解决什么问题? 能构造一个 \(1\sim N\) 的全排列 和 \(0\sim N!-1\) 之间的双射,在解决全排列的哈希问题上有奇效。 康托展开即是将全排列映射到自然数,而康托逆展开则是将自然数映射到一个全排列。 怎么解决? 对于一个 \(N\) 项全排列 \(\{p\}\),定义

  • Qt的mouseMoveEvent捕获鼠标事件不生效的解决办法2022-04-13 23:31:21

    一、概述   案例:在使用OpenCV的grabCut算法实现简单抠图操作的时候(因为使用到了鼠标坐标选择目标区域),使用到的Qt的鼠标的mousePressEvent(按下)、mouseMoveEvent(移动)、mouseReleaseEvent(释放)事件。实验下来其中只有mousePressEvent生效。看了一大堆的资料:说的最多的是设置setMouse

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有