【CF1206B】Make Product Equal One
Description 给定一个整数序列,每次操作可以将某一个元素的值+1或-1,求最少需要多少次操作可以使得序列每个元素的乘积等于1 Solution dp 一些数的乘积等于1,那么说明序列中一定只含有1或者是-1,而且-1出现的次数必须为偶数 那么我们定义$f[i][1/0]$表示前$i$个数,一共有奇数/偶数个-1时的最小操作数是多少 那么我们考虑转移 如果我们让当前的数变为1,那么从阶段i-1转移到i的时候-1个数的奇偶性不变 同理,变为-1就意味着奇偶性改变 那么状态转移方程就很简单
【模板】 带修改主席树
也就是树状数组加线段树 1 #include<bits/stdc++.h>
2 using namespace std;
3 const int N=5e4+7;
4 struct node{
5 int l,r,sum;
6 }tr[N<<3];
7 struct quer{
8 int l,r,k,v,op;
9 }q[10000+7];
10 int rtn,Ln,Rn;
11 int a[N],b[N],rt[N<<2],L[N<<
多线程基础(一)— Java 内存模型
为了更好的理解 Java 内层模型,我们需要简单地将 CPU 缓存模型回忆一下。 CPU Cache 缓存 在计算机中,虽然 CPU 的计算速度很快,但是计算机中绝大多数的任务不能只靠 CPU 的计算就能完成。还需要包括与内层的数据交互,读写、存储元算结果等。但是由于计算机的存储设备和 CPU 的运算速度有着几个数量级的差距,现代计算机中一般都会在内存设备和 CPU 之间添加一层读写速度尽可能接近 CPU 处理速度的高速缓存,用于将运算需要的数据复制到缓存中,让运算能够快速进行,当运算
【模板】 二分图最大匹配和匈牙利算法
1 bool dfs(int u)
2 {
3 for (iterator_t i = G[u].begin(); i != G[u].end(); ++i) { // 对 u 的每个邻接点
4 int v = edges[*i].to;
5 if (!check[v]) { // 要求不在交替路中
6 check[v] = true; // 放入交替路
7 if (matc
【模板】 ac自动机
1 #include<cstdio>
2 #include<cstring>
3 #include<algorithm>
4 #include<queue>
5 #define maxn 5000000+10
6 using namespace std;
7 char str[maxn*2];
8 struct node{
9 int fail;//失配指针;
10 int cnt;//单词出现的次数;
11 int next[62
【面试题】---前端需要掌握的知识点-----更新...
css
1、盒模型
2、flex
3、css单位
4、css选择器
5、bfc 清除浮动
6、层叠上下文
7、常见页面布局
8、响应式布局
9、css预处理,后处理
10、css3新特性
animation和transiton的相关属性
animate和translate
11、display哪些取值
12、相邻的两个inline-block节点为什么会出现间隔,该如何解决
13、meta viewport 移动端适配
14、CSS实现宽度自适应100%,宽高1
【模板】 快速幂快速积
1 long long ksj(long long a,long long b,long long c) //快速积取模 a*b%c
2 {
3 long long ans=0;
4 while(b){
5 if(b&1)
6 ans=(ans+a)%c;
7 a=(a+a)%c;
8 b>>=1;
9 }
10 return ans;
11 }
python中的__call__函数
简单实例: class TmpTest:
def __init__(self, x, y):
self.x = x
self.y = y
def __call__(self, x, y):
self.x, self.y = x, y
a = TmpTest(1, 2)
a(4, 5)
print(a.x, a.y)
4 5 实战中应用: import json
import requests
如何快速生成项目-cookiecutter
PyCharm并不自带这个功能 (Wizard) 生成新项目的向导(Wizard) 于是出现了cookiecutter 这是一个项目生成器 安装cookiecutter pip install cookiecutter 寻找一个合适的cookiecutter项目 挑选后 则可直接执行cookiecutter生成项目。 在 https://github.com/audreyr/cookiecutter/tree/db14e06a1dcc0187beeafde72685c3acef93eb68#
Matplotlib模块的基本使用
一、折线绘图 import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv("F:\\ml\\机器学习\\01\\1.csv")
print(data) date values
0 2012/11/15 90
1 2013/4/5 34
2 2014/2/3 34
3 2015/8/9 35
4 2016/
【模板】dijikstra
1 dis[1]=0;
2 q.push(make_pair(0,1));
3 while(!q.empty())
4 {
5 int u=q.top().second;
6 q.pop();
7 if(vis[u]) continue;
8 vis[u]=1;
9 for(int i=h[u];i;i=e[i].nex)
10 {
基本查询语句和方法,连表,子查询
基本查询语句及方法 from, where, group by, having, distinct, order by, limit 连表 inner join, left join, right join, union 书写顺序 select id,name from emp where id > 3 and id < 6; 执行顺序 from # 确定到底是哪张表 where # 根据过来条件 筛选数据 select # 拿出筛选出来的数据中的某些字段 select *
python爬虫爬取各个城市历史天气及数据可视化
数据抓取 import asyncio
import aiohttp
from lxml import etree
import re
from collections import namedtuple
Args = namedtuple('Args',['city','year','month'])
async def work(args):
url = "http://www.tianqihoubao.com/lishi/%s/month/%d%02
文件压缩命令--压缩和解压缩命令
文件压缩命令--压缩和解压缩命令 1:(1)zip命令 .zip “.zip”是 Windows 中最常用的压缩格式,Linux 也可以正确识别“.zip”格式,这可以方便地和Windows 系统通用压缩文件。 zip [选项] 压缩包名 源文件或源目录 -r: 压缩目录 示例:zip -r vi.zip vitest adding: vitest/ (stored 0%) adding: vitest/vi.text (deflated 64%) adding: vitest/.con.sq
约数大合集(超详细!!!)
整数惟一分解定理的推论 1、求N的正约数集合 因为约数总是成对出现的(除了完全平方数)。因此只需扫描1~sqrt(N)之间的数就能得到N的正约数集合。 2、求1~N的每个数的正约数集合 3、约数个数 算术基本定理中,根据拆分后的素因子的指数,我们可以求出每个 N 的约数的个数。 根据这个式子,我们可以用线性筛去筛出当前 1~N 的约数个数。筛的过程中,我们需要保存下最小素因子的个数。 下面推导中 d(i) 表示 i 的约数个数 num[i] 表示 i 的最小素因子的个数 prim[i] 表示
Zookeeper高级
1.1. 一致性协议概述 前面已经讨论过,在分布式环境下,有很多不确定性因素,故障随时都回发生,也讲了CAP理论,BASE理论 我们希望达到,在分布式环境下能搭建一个高可用的,且数据高一致性的服务,目标是这样,但CAP理论告诉我们要达到这样的理想环境是不可能的。这三者最多完全满足2个。 在这个前提下,P(分区容错性)是必然要满足的,因为毕竟是分布式,不能把所有的应用全放到一个服务器里面,这样服务器是吃不消的,而且也存在单点故障问题。 所以,只能从一致性和可用性中找平衡。 怎么个平衡法?在这种环
今日推荐
周排行