begin

P4168 [Violet]蒲公英(分块)

隐身守侯 提交于 2019-11-29 08:38:24
询问区间最小的众数 先离散化,nsqrt(n)预处理,然后我用vector存了每个值对应的位置,每次二分地找某个值在指定区间当中出现了几次 不开O2疯狂TLE,开了就过了,vector大法好, 可以顶平衡树 代码: #include<bits/stdc++.h> using namespace std; const int maxn=500005; const int inf=0x3f3f3f3f; inline int read(){ char ch=getchar();int s=0,w=1; while(ch<48||ch>57){if(ch=='-')w=-1;ch=getchar();} while(ch>=48&&ch<=57){s=(s<<1)+(s<<3)+ch-48;ch=getchar();} return s*w; } inline void write(int x){ if(x<0)putchar('-'),x=-x; if(x>9)write(x/10); putchar(x%10+48); } int n,m,lastans=0,l,r; int a[maxn],b[maxn]; int cnt[maxn],ans[1000][1000],num[1000][1000]; int id[maxn],from[1000],to[1000],tot;

LeetCode解题报告--Combination Sum II

浪尽此生 提交于 2019-11-29 08:08:35
题目: Given a collection of candidate numbers (C) and a target number (T), find all unique combinations in C where the candidate numbers sums to T. Each number in C may only be used once in the combination. Note: All numbers (including target) will be positive integers. Elements in a combination (a1, a2, … , ak) must be in non-descending order. (ie, a1 ≤ a2 ≤ … ≤ ak). The solution set must not contain duplicate combinations. For example, given candidate set 10,1,2,7,6,1,5 and target 8, A solution set is: [1, 7] [1, 2, 5] [2, 6] [1, 1, 6] 题目链接: https://leetcode.com/problems/combination-sum-ii/ 分析

学习 SQL 语句 - Select(9): 其他

被刻印的时光 ゝ 提交于 2019-11-29 06:01:31
//只要前五条记录 procedure TForm1.Button1Click(Sender: TObject); begin with ADODataSet1 do begin Close; CommandText := 'SELECT TOP 5 * FROM country'; Open; end; end; //去除重复 procedure TForm1.Button2Click(Sender: TObject); begin with ADODataSet1 do begin Close; CommandText := 'SELECT DISTINCTROW * FROM country'; Open; end; end; //获取字段列表 procedure TForm1.Button3Click(Sender: TObject); var i: Integer; str: string; begin str := ''; for i := 0 to ADODataSet1.FieldDefs.Count - 1 do begin str := str + ADODataSet1.FieldDefs[i].Name + sLineBreak; end; ShowMessage(str); end; 来源: https://www.cnblogs.com/jijm123

awk命令

风流意气都作罢 提交于 2019-11-29 04:25:52
一 awk简介: awk是一种用于处理数据和生成报告的编程语言 awk可以在命令行中进行一些简单的操作,也可以被写成脚本来处理较大的应用问题。awk与grep\sed命令结合,使shell编程更容易 linux下使用的awk是gawk 二 awk如何工作: awk逐行扫描输入(可以是文件或者管道),按照给定的模式查找匹配的行,然后对这些行执行awk指定的操作 与sed一样.awk不会改变文件的内容。可以使用过重定向将awk输出的内容保存到文件。 三 awk简单用法 -F 指定输入字段的分隔符,默认情况下使用环境变量IFS的值 -f 从指定文件读取awk_script(类似于sed) -v 为awk设定变量 awk -F: '{print $1}' /etc/passwd :对输入文件以:为分隔符,打印第一列内容(用户名)。  $0整行 awk -F: '{print $1,$3}' /etc/passwd:第一列和第三列 awk -F: '{print $1 “ |” $3}' /etc/passwd:竖线分割 awk -F: '/^root/{print $1,$3}' /etc/passwd:root开头行 -f:将上面引号中的命令放入脚本中 awk -F: -f test.awk /etc/passwd 四 awk_script语法: awk命令的一般形式: awk

翻转数值

寵の児 提交于 2019-11-29 03:31:32
输入1234 输出4321 输入-1234 输出-4321 要求实现判断:输入数为-2^(32-1)~2^(32-1)-1,翻转数-2^(32-1)~2^(32-1)-1,在此范围输出翻转数,否则提示溢出. 实现:法一取余放入队列,取出队首乘倍数实现翻转 #include<iostream> #include<queue> using namespace std; int dealFuntion(long long input); long long mypow(int n); int main(int argc, char* argv[]) { long long a=0; cout<<"输入需要翻转的数值:"<<endl; cin>>a; int b=dealFuntion(a); cout<<"翻转的数值为:"<<endl; cout<<b<<endl; return 0; } int dealFuntion(long long input) { if(input>2147483647||input<-2147483648) { cout<<"输入数溢出"<<endl; return 0; } queue<int> s1; long long i=0; int j=0; int symbol=1; int count=0; long long res; long long

AWK

拥有回忆 提交于 2019-11-29 03:16:31
本章内容 awk介绍 awk基本用法 awk变量 awk格式化 awk操作符 awk条件判断 awk循环 awk数组 awk函数 调用系统命令 awk介绍 awk:Aho, Weinberger, Kernighan,报告生成器,格式化文本输出 有多种版本:New awk(nawk),GNU awk( gawk) gawk:模式扫描和处理语言 基本用法: awk [options] 'program' var=value file… awk [options] -f programfile var=value file… awk [options] 'BEGIN{action;… }pattern{action;… }END{action;… }' file ... awk 程序可由:BEGIN语句块、能够使用模式匹配的通用语句块、END语句 块,共3部分组成 program 通常是被放在单引号中 选项: -F “分隔符” 指明输入时用到的字段分隔符 -v var=value 变量赋值 awk语言 基本格式:awk [options] 'program' file… Program:pattern{action statements;..} pattern和action • pattern部分决定动作语句何时触发及触发事件 BEGIN,END • action

Mayor's posters POJ - 2528 (技巧性离散化+线段树)

白昼怎懂夜的黑 提交于 2019-11-29 00:49:57
大致题意 n(n<=10000) 个人依次贴海报,给出每张海报所贴的范围li,ri(1<=li<=ri<=10000000) 。求出最后还能看见多少张海报。 Input 第一行: 样例个数T 第二行: 贴海报的人n 第三行: 每个人贴海报的范围 接下来n行:每个人贴海报的范围 思路 由于li,ri的范围很大,需要离散化,但是容易发现,直接离散化会发生一些问题。比如[1,5],[1,2],[4,5]。上述三个区间离散化之后得到的结果是[1,4],[1,2],[3,4],会发现如果按这个顺序挂海报,最终只能看见2副。但实际上区间[1,2]和[4,5]不能完全覆盖[1,5],其中3这个位置仍可以在最后被看见。所以要先对所有的Li,ri进行一些处理,对所有出现的位置排序后,如果 v[i]-v[i-1]>1那么要在中间插一个数字,避免出现上述问题。具体细节见代码。 然后将操作倒序进行,后面的海报有一个优点,当前海报覆盖的区域如果存在空位,那么它一定不可能被前面的海报覆盖了,所以只要区间[li,ri]内的最小值是0,那么ans++。因为这个空位被当前海报最后一个覆盖。所以只要写一个 维护区间最小值的线段树,支持区间赋值操作即可。 代码 # include <cstdio> # include <algorithm> # include <ctype.h> # include <vector>

Java 如何判定当前时间是否在某个范围

懵懂的女人 提交于 2019-11-29 00:12:12
由于一些特别的原因 需要判定当前时间是否在某个特定的范围 以下是一个根据数据库里面规定的日期选择是否打折,以及打几折的一个DEMO 1 /* 2 Navicat Premium Data Transfer 3 4 Source Server : localhost_3306 5 Source Server Type : MySQL 6 Source Server Version : 80017 7 Source Host : localhost:3306 8 Source Schema : shop 9 10 Target Server Type : MySQL 11 Target Server Version : 80017 12 File Encoding : 65001 13 14 Date: 30/08/2019 11:48:48 15 */ 16 17 SET NAMES utf8mb4; 18 SET FOREIGN_KEY_CHECKS = 0; 19 20 -- ---------------------------- 21 -- Table structure for activity 22 -- ---------------------------- 23 DROP TABLE IF EXISTS `activity`; 24 CREATE TABLE

9406LaTeX公式

丶灬走出姿态 提交于 2019-11-28 20:57:00
需要注意的是: 1.本文只对第四章排版数学公式进行简单整理 2.本文大量内容直接引自 官网 ,尤其是涉及4.开头的标题,为方便读者查阅对比,就不一一删改和引注,你可以 点此访问官网 对应内容,也可以 点此下载 我已下载的中文文档。 3.文中部分LaTeX格式未达到演示效果,可能是由于博客园标准不一样,具体以实验为准 TeX TEX 是高德纳 (Donald E.Knuth) 开发的、以排版文字和数学公式为目的的一个计算机软件 [6]。高德纳从 1977 年开始开发 TEX ,以发掘当时开始用于出版工业的数字印刷设备的潜力。正 在编写著作《计算机程序设计艺术》的高德纳,意图扭转排版质量每况愈下的状况,以免影响他 的出书。我们现在使用的 TEX 排版引擎发布于 1982 年,在 1989 年又稍加改进以更好地支持 8-bit 字符和多语言排版。TEX 以其卓越的稳定性、跨平台、几乎没有 Bug 而著称。TEX 的版本 号不断趋近于 π,当前为 3.141592653。 TEX 读作 “Tech” ,其中 “ch” 的发音类似于 “h” ,与汉字“泰赫”的发音类似。TEX 的拼写 来自希腊词语 τεχνική (technique,技术) 的开头几个字母。在 ASCII 字符环境,TEX 写作 TeX。 LaTeX L ATEX 为 TEX 基础上的一套格式

P3380 【模板】二逼平衡树(树套树)

限于喜欢 提交于 2019-11-28 20:46:17
题面 https://www.luogu.org/problem/P3380 题解 #include<cstdio> #include<iostream> #include<algorithm> #include<vector> #define ri register int using namespace std; struct node{ vector<int> a; void insert(int x){ a.insert(upper_bound(a.begin(),a.end(),x),x); } void change(int old,int now) { a.erase(lower_bound(a.begin(),a.end(),old)); a.insert(upper_bound(a.begin(),a.end(),now),now); } int find(int now){ if ((*a.begin())>=now) return 0; return lower_bound(a.begin(),a.end(),now)-a.begin(); } } ff[50050]; int a[50050]; int n,m; int lowbit(int x){ return x&(-x); } int findbyrank(int l,int r,int k){