紫书给的分析缺少一些证明性的东西,将我自己的OneNote笔记贴在这里.…
规律题,打表找规律即可发现 a xor b >= a - b >= gcd(a, b), 如果 a xor b = gcd(a, b) = c 则 c = a - b 枚举倍数c和a判断b即可 但是我主要想讲的是这道题要注意的,就是在跑循环时,一定要注意数组是否越界,比如 int a[maxn]; scanf("%d",&T); for(int i=1;i<=maxn;++i){ a[i]=i; } 这样写会造成你读入的T被覆盖,导致输出超限,因为数组a[ma…
题意: 输入 a 和 b(a>b),求a! / b!的结果最多能被第二个士兵给的数字除多少次. 思路: a! / b!肯定能把b!约分掉,只留下b+1~a的数字相乘,所以我们求b+1 ~ a的所有数字的素因子数的和.所以最主要是想一个快速求素因子的方法,在素数筛的基础上改造. for(int i=2; i<N; i++) if(!su[i]) { for(int j=i; j<N; j+=i)//素数筛的基础找到i为素数 { su[j]=1; t=j; while(t%i==0)//对这…
题意:输入整数n(1<=n<=30000000),有多少对整数(a, b)满足:1<=b<=a<=n,且gcd(a,b)=a XOR b. 分析:因为c是a的约数,所以枚举c,a = k*c,通过a-c求b,并通过a^b=c来验证. #pragma comment(linker, "/STACK:102400000, 102400000") #include<cstdio> #include<cstring> #include<…
题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5726 Description Give you a sequence of N(N≤100,000) integers : a1,...,an(0<ai≤1000,000,000). There are Q(Q≤100,000) queries. For each query l,r you have to calculate gcd(al,,al+1,...,ar) and count…
Django框架,models.py模块,数据库操作——表类容的增删改查 增加数据 create()方法,增加数据 save()方法,写入数据 第一种方式 表类名称(字段=值) 需要save()方法,写入数据 from django.shortcuts import render from app1.models import * #导入数据库操作模块 #逻辑处理模块 def special(request): a = yhubiao(anem=') #第一种添加数据,实例化表类,在实例化里传参…
Django框架,models.py模块,数据库操作——表类容的增删改查 增加数据 create()方法,增加数据 save()方法,写入数据 第一种方式 表类名称(字段=值) 需要save()方法,写入数据 from django.shortcuts import render from app1.models import * #导入数据库操作模块 #逻辑处理模块 def special(request): a = yhubiao(anem='张三',mim='279819') #第一种添加…
这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 http://www.cnblogs.com/oloroso/ 本文由乌合之众 lym瞎编,欢迎转载 my.oschina.net/oloroso 哈希表的增删查改 这是BasicHashTable基本哈希表类源码分析的最后一个部分,即哈希表的基本操作方法.这里时间没有直接给出修改条目的方法,因为它包含在了add方法中. Add方法(增加条目) Add方法先…
这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 http://www.cnblogs.com/oloroso/ 本文由乌合之众 lym瞎编,欢迎转载 my.oschina.net/oloroso BasicHashTable的辅助方法 这里介绍的是一些用来对哈希表进行一些基本的哈希操作的函数. randomIndex(uintptr_t i) const方法 randomIndex(uintptr_t i…
这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 http://www.cnblogs.com/oloroso/ 本文由乌合之众 lym瞎编,欢迎转载 my.oschina.net/oloroso BasicHashTable基本哈希表类 这个类搞的很复杂,实质上没什么东西,就是很难看. 先画一个简图 先说说这个BasicHashTable的设计吧. 这个表的内部嵌套定义了一个TableEntry(表条目)…
这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 http://www.cnblogs.com/oloroso/ 本文由乌合之众 lym瞎编,欢迎转载 my.oschina.net/oloroso HashTable抽象哈希表类 HashTable类内部嵌套定义了一个迭代器类Iterator,这个迭代器类用于循环访问表的成员.这也是一个抽象类,但是其有一个静态的方法static Iterator* crea…
集合>哈希表类Hashtable Hashtable一种键值对的集合 ,哈希表内部的排列是无序的,而且哈希表没有提供排序方法. 集合>哈希表类Hashtable>构造普通哈希表 代码using System;using System.Collections.Generic;using System.Text;using System.Collections;namespace ConsoleApplication1{    class Program    {        static…
Kuro is currently playing an educational game about numbers. The game focuses on the greatest common divisor (GCD), the XOR value, and the sum of two numbers. Kuro loves the game so much that he solves levels by levels day by day. Sadly, he's going o…
第四百零六节,自定义用户表类来继承Django的用户表类, models.py from django.db import models # Create your models here. from django.db import models from django.contrib.auth.models import AbstractUser # django自带的用户表类 class Userpro(AbstractUser): # 继承django自带的用户表类 nick_name…
埃氏筛法求素数和构造素数表求素数是一个道理. 首先,列出从2开始的所有自然数,构造一个序列: 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, ... 取序列的第一个数2,它一定是素数,然后用2把序列的2的倍数筛掉: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, ... 取新序列的第一个数3,它一定是素数,然后用3把序列的3的倍…
在上一篇博文——线性表接口的实现_Java中,我们实现了线性表的接口,今天让我们来实现线性表的顺序存储结构——顺序表类. 首先让我们来看下顺序表的定义: 线性表的顺序存储是用一组连续的内存单元依次存放线性表的数据元素,元素在内存的物理存储次序与它们在线性表中的逻辑次序相同,即元素ai与其直接前驱ai-1及直接后继ai+1的存储位置相邻.顺序存储的线性表也成为顺序表(sequential list). 顺序表类SeqList提供线性表基于顺序存储结构的一种实现,它有两个私有成员变量table和n,…
哈希表是一种重要的存储方式,也是一种常见的检索方法.其基本思想是将关系码的值作为自变量,通过一定的函数关系计算出对应的函数值,把这个数值解释为结点的存储地址,将结点存入计算得到存储地址所对应的存储单元.检索时采用检索关键码的方法.现在哈希表有一套完整的算法来进行插入.删除和解决冲突.在Java中哈希表用于存储对象,实现快速检索. Java.util.Hashtable提供了种方法让用户使用哈希表,而不需要考虑其哈希表真正如何工作. 哈希表类中提供了三种构造方法,分别是: public Hasht…
CF 979D Kuro and GCD and XOR and SUM(异或 Trie) 给出q(<=1e5)个操作.操作分两种,一种是插入一个数u(<=1e5),另一种是给出三个数x,k,s(<=1e5),求当前所有u中满足,k|u,x+u<=s,且\(x\oplus u\)最大的u. 做法好神啊.关于异或的问题有一种常见做法,就是利用01trie来查找在一堆数里面,哪个数与x的异或值最大.这道题就是这个思路.如果去掉k必须整除v这个条件,那么就转化成了上一个问题(只不过有最大…
Kuro is currently playing an educational game about numbers. The game focuses on the greatest common divisor (GCD), the XOR value, and the sum of two numbers. Kuro loves the game so much that he solves levels by levels day by day. Sadly, he's going o…
传送门:http://codeforces.com/contest/1047/problem/C 题意: 给定n个数,问最少要去掉几个数,使得剩下的数gcd 大于原来n个数的gcd值. 思路: 自己一开始想把每个数的因子都找出来,找到这些因子中出现次数最多且因子大于n个数的最大公约数的,(n - 次数 )就是答案.但是复杂度是1e9,差那么一点. 自己还是对素数筛理解的不够深.这道题可以枚举素数x,对于每个x,找到所有(a[i]/gcd(all)) 是x倍数的个数,就是一个次数.找这个次数的过程…
Kuro and GCD and XOR and SUM 题意:给你一个空数组. 然后有2个操作, 1是往这个数组里面插入某个值, 2.给你一个x, k, s.要求在数组中找到一个v,使得k|gcd(x,v)  (即gcd(x,v)是k的倍数,v+x <= k, x ^ v的值最大. 题解:XOR亦或问题是经典的题目,一般都是用01字典树去处理. 然后需要满足条件1, 所以我们可以对于每一个点建立一个字典树,每次添加数的时候都往这个数的因子添加这个值,这样我们直接访问对应的k就可以找到答案了.…
Codeforces 979 D. Kuro and GCD and XOR and SUM 题目大意:有两种操作:①给一个数v,加入数组a中②给出三个数x,k,s:从当前数组a中找出一个数u满足 u与x的gcd可以被k整除,u不大于s-x,且与x的异或和最大. 思路:之前没有碰到过异或和最值的问题,所以是懵逼的.学习了01字典树后把这题补出来. 碰到操作①就上树,上树过程中注意不断维护每个节点往后路径中的最小值(具体见代码细节): 碰到操作②,如果k==1,那么从树上找数的同时注意限制条件最小…
题意 删去最少的数,使gcd变大 题解 只要保留相同素数因子最多的数即可. 素数筛. C++代码 #include<bits/stdc++.h> using namespace std; ; ; int Mark[MAXN]; int prime[MAXN]; int Prime(){ ; memset(Mark,,sizeof(Mark)); Mark[] = ; Mark[] = ; ; i < MAXN; i++){ ){ prime[tot++] = i; } ; j <…
传送门:http://codeforces.com/contest/1047/problem/C 题意:给出n个数字,求最少删除几个数可以使剩下的数字的GCD大于n个数字的GCD 思路:最开始想的是先遍历求N个数的GCD,然后外层循环从i=g+1(g=GCD)开始,内层从j=1开始找a[j]%i==0的个数t, 求出最大的个数,如果求出的个数不为零,输出n-t,否则输出-1,但这样会超时,要优化: 看了别人的题解,要用到素数筛的方法. 第一步都是遍历求g=GCD.第二步求a[i]/g出现的次数.…
这题就是先写个素数筛,存到prime里,之后遍历就好,取余,看是否等于0,如果等于0就更新,感觉自己说的不明白,引用下别人的话吧: 素数打表,找出20000之前的所有素数,存入prime数组,对于每个输入的数a,从prime数组最后一个数往前判断,如果a % prime[当前序号]== 0,那么将该素数就是输入数据a的最大素因子,找出所有输入数据的最大素因子,找出最大的那个对应的数据a即可,当a == 1的时候要特别处理. 然而我现在还是不懂,为什么输入是1 1的时候输出1,题目也没说啊,还有最…
Help Hanzo 题意:求a~b间素数个数(1 ≤ a ≤ b < 231, b - a ≤ 100000).     (全题在文末) 题解: a~b枚举必定TLE,普通打表MLE,真是头疼.. b - a ≤ 100000 是关键. 类似素数筛的方法: 1.初始化vis[]=0 ; 2.素数的倍数vis[]=1; 3.  b较小时,素数筛解决   b很大时,素数筛的vis[]会MLE,此时用vis2[i-a]保存vis[i]就不会MLE 了.. #include<iostream>…
Some positive integers can be represented by a sum of one or more consecutive prime numbers. How many such representations does a given positive integer have? For example, the integer 53 has two representations 5 + 7 + 11 + 13 + 17 and 53. The intege…
题目链接 题意:对2~n+1染色,一个数不能与其素因子同色. 故而只需两种颜色即可,素数染1,合数染2便可满足条件 #include<bits/stdc++.h> using namespace std; typedef long long LL; //素数筛打表 ; ],num_prime=; ]; void init() { isNotPrime[]=isNotPrime[]=; ; i<=N; i++) { if(!isNotPrime[i]) prime[num_prime++]…
原题链接 写个素数筛暴力打表一波就AC了: #include <iostream> using namespace std; const int N = 10001; int i, j, NotPrime[N]; long long sum[N]; void GetNotPrime() { for( i=2; i<=N; i++ ) if( !NotPrime[i] ) for( j = i+i; j<=N; j+=i ) NotPrime[j] = 1; } int k; voi…
Xiaoming has just come up with a new way for encryption, by calculating the key from a publicly viewable number in the following way: Let the public key N = A B, where 1 <= A, B <= 1000000, and a 0, a 1, a 2, …, a k-1 be the factors of N, then the p…