剑指offer 11二进制中1的个数
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 java版本: public class Solution {
public int NumberOf1(int n) {
String result = Integer.toBinaryString(n);//获取二进制的字符串
char[] arr=result.toCharArray();//将字符串转换为char字符数组
int count=0;
f
Luogu P4317 花神的数论题
也是一道不错的数位DP,考虑先转成二进制后再做 转化一下问题,考虑统计出\([1,n]\)中在二进制下有\(i\)个\(1\)的方案数\(cnt_i\),那么答案显然就是\(\prod i^{cnt_i}\) 然后我们还是先预处理一个东西\(s_{i,j}\),表示在二进制下前\(i\)位中填上\(j\)个\(1\)的方案数,则有转移: \(s_{i,j}=s_{i-1,j}+s_{i-1,j-1}(i>1)\),同时有\(s_{i,0}=1\) 这转移很简单吧,就是考虑这一位填上\(0/1\
Python(二) 表示‘组’的概念与定义
现实世界中总存在一组一组的事物, 一、列表的定义 type(['hello','world',1,9,True,False]) = <class 'list'> type([[1,2,3,],[1,2],[True,False]]) =<class 'list'> 嵌套列表 二、列表的基本操作 ['第一个数','第二个数','第三个数','第四个数'][-1]='第四个数' ['第一个数','第二个数','第三个数','第四个数'][-2:]=['第三个数', '第四个数'] ['第一个数',
基于pandas python sklearn 的美团某商家的评论分类(文本分类)
美团店铺评价语言处理以及分类(NLP) 上两篇博客中介绍了美团店铺的订单信息以及数据分析以及可视化 其中还有一部分评论文本信息并没有提及到,自然也就有了这篇 主要用到的包有jieba,sklearn,pandas 本篇博文主要先用的是词袋模型(bag of words),将文本以数值特征向量的形式来表示(每个文档构建一个特征向量,有很多的0,类似于前文说的category类的one-hot形式,得到的矩阵为稀疏矩阵) 导入数据分析常用库 import pandas as pd
import n
12.(enum)枚举
//enum枚举
/*
枚举是c语言中的一种类型,可以让数据更简洁更易读
枚举的定义格式为: enum 枚举名 {枚举元素1,枚举元素2,····,枚举元素n};
举个栗子,我们要定义一个星期的七天,如果不用枚举,我们需要使用#define来为每个整数定义一个别名
#define MON 1
#define TUE 2
#define WED 3
#define THU 4
#define FRI 5
#define SAT 6
#define SUN 7
洛谷_P3383 【模板】线性筛素数
题目描述 如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内) 输入输出格式 输入格式: 第一行包含两个正整数N、M,分别表示查询的范围和查询的个数。 接下来M行每行包含一个不小于1且不大于N的整数,即询问该数是否为质数。 输出格式: 输出包含M行,每行为Yes或No,即依次为每一个询问的结果。 代码 1 var
2 n,m,nm:longint;
3 v,prime:array [0..10000001] of longint;
4 p
使用python访问人人网(二)
通过代码登录人人网,并使用登录后的cookie访问人人网主页 源码: 1 import json
2 from urllib import request, parse
3
4 # 导入http中管理cookie的包
5 from http import cookiejar
6 # 创建cookie容器对象,cookie_object
7 cookie_object = cookiejar.CookieJar()
8 # 创建cookie管理器,handler
9 hand
jQuery 学习笔记(1)
1、jQuery入口函数相比原生的入口函数 window.onload = function() { ... } //当DOM和图片都加载完毕后执行 $(document).ready(function() { ... }) //当DOM加载完毕执行 2、jQuery入口函数重复执行不会被覆盖 window.onload = function () { console.log("onload1" )} window.onload = function() { console.l
Apache安装使用笔记
下载 打开网页http://httpd.apache.org/,点击 在download页面点击 然后在新页面选择 在新窗口选择 选择32位或64位apache下载,此处下载64位的apache: httpd-2.4.34-o110h-x64-vc14.zip 安装 将httpd-2.4.34-o110h-x64-vc14.zip解压开到某个目录,打开readme_first.html会有完整的介绍。下图是apache支持的操作系统 下载Visual C++ 2015 x64 Redistri
HTML 简单常用标签
标题标签 具有标题的语义 h1到h6,重要性依次递减 <h1>标题文本</h1>
<h2>标题文本</h2>
<h3>标题文本</h3>
<h4>标题文本</h4>
<h5>标题文本</h5>
<h6>标题文本</h6> 段落标签 具有段落的语义 <p>
段落内容
</p> 水平线标签 horizontal 这是一个单标签 <hr /> 换行标签 break,打断、换行 <br /> div、span 这两个标签是没有语义的 是网页布局主要的两个盒子 div就是divis
bzoj 1692 [Usaco2007 Dec]队列变换 贪心+后缀数组
题面 题目传送门 解法 每一次选的时候比较左端点为起点的后缀与右端点为起点的原串倒序的后缀哪一个字典序小,小的那个相应地移一下即可 感觉这比较绕啊,举个例子解释一下 假设当前的串为\(AABCAA\),\(l=1,r=6\) 那么只要比较\(AABCAA\)和\(AACBAA\)哪一个字典序小,发现是\(AABCAA\)字典序小,所以将l+1 将原串反序接在原串的后面,然后求一遍rnk 每一次比较一下哪一个rnk小即可 时间复杂度:\(O(n\ log\ n)\) 代码 #include <b
Python re模块 subprocess模块
''' re模块 内部实现不是Python 而是调用了c的库 re是什么 正则 表达 式子 就是一些带有特殊含义的符号或者符号的组合 作用: 对字符串进行过滤 在一对字符串中找到所关心的内容 你就需要告诉计算机过滤规则是什么样 通过什么方式来告诉计算机 就通过正则表达式 re模块常用方法 findall 从左往右查找所有满足条件的字符 返回一个列表 search 返回第一个匹配的字符串 结果
bzoj 2251 [2010Beijing Wc]外星联络 后缀数组
题面 题目传送门 解法 用后缀数组求出height数组,然后暴力即可 时间复杂度:\(O(n^2)\) 代码 #include <bits/stdc++.h>
#define N 3010
using namespace std;
template <typename node> void read(node &x) {
x = 0; int f = 1; char c = getchar();
while (!isdigit(c)) {if (c == '-') f = -1
linux最基础最常用的命令快速手记 — 让手指跟上思考的速度(三)
这一篇作为姐妹篇的第三篇,废话不多说,我觉得这个比mysql的还要重要,为什么,一旦你摊上linux 敲键盘输入命令简直是要飞的速度,不断的卡壳查命令,效率太低了,而且非常严重的影响思绪,思绪! 某些非常非常基础,只记我用的,废话不多说,不分先后。最重要的是慢慢体味并记忆下来。 1、先热个身,Tab补全,太基础,Ctrl+c 停止当前命令回到命令行,Ctrl+d 结束(这个非常值得一试~~) 2、pwd 查看当前所处的文件路径,一般默认在/root下 3、cd直接回车,回到根目录下(/ro
bzoj 1717 [Usaco2006 Dec]Milk Patterns 产奶的模式 后缀数组
题面 题目传送门 解法 比较套路的一道题吧 先求出height数组,二分答案\(mid\) 将后缀分成若干组,每一组满足height≥mid 若某一组的后缀个数≥k,那么答案可行 时间复杂度:\(O(n\ log\ n)\) 代码 #include <bits/stdc++.h>
#define N 1000010
using namespace std;
template <typename node> void read(node &x) {
x = 0; int f = 1; c
bzoj 4888 [Tjoi2017]异或和 树状数组
题面 题目传送门 解法 枚举最后的二进制位,假设是第\(k\)位 问题就转化成有多少段和二进制意义下第\(k\)位是1 不妨转化成前缀和 变成有多少对\(i,j(i>j)\),使得\(s_i-s_j\)的第\(k\)位是1 我们可以枚举\(k\),假设\(s_i\)的第\(k\)位是1 如果\(s_i-s_j\)的第\(k\)位是1,那么存在两种情况: 1.\(s_j\)的第\(k\)位是0,且不存在减法退位这种情况 2.\(s_j\)的第\(k\)位是1,出现了减法退位 那么我们只要比较前\
bzoj 3551 [ONTAK2010]Peaks加强版 kruskal重构树+主席树
题面 题目传送门 解法 建出kruskal重构树,然后变成求子树第\(k\)大问题 直接主席树即可 时间复杂度:\(O(q\ log\ n)\) 代码 #include <bits/stdc++.h>
#define N 200010
using namespace std;
template <typename node> void read(node &x) {
x = 0; int f = 1; char c = getchar();
while (!isdigit(c)
今日推荐
周排行