题目 数字染色 给出一个正整数序列,求有多少子序列的gcd不为1。 求解 假设子序列gcd为x,那么只需求出x的倍数的数量m,gcd为x的子序列数量即为 2 m −
【题目描述】 假设有N盏灯(N为不大于5000的正整数),从1到N按顺序依次编号,初始时全部处于开启状态;有M个人(M为不大于N的正整数)也从1到M依次编号。 第一个人(1号)将灯全部关闭,第二个人(2号)将编号为2的倍数的灯打开,第三个人(3号)将编号为3的倍数的灯做相反处理(即将打开的灯关闭,将
np.tile函数的作用 np.tile() 1.沿X轴复制 2.XY轴都复制,或只沿着Y轴复制的方法 np.tile() 本着函数取名必有所依的原理,博主百度了一下tile的英文意思,发现tile有平铺的意思。 1.沿X轴复制 在numpy中,np.tile(a,(2))函数的作用就是将函数将函数沿着X轴扩大两倍。如果扩大倍数只有一个
<学习笔记>筛法 近日学习了两种筛法, 埃氏筛法和线性筛法 筛法 因为质数的因子只有本身和1, 因此一个大于1的数x的倍数都不是质数 根据这个朴素的想法, 我们可以对i的倍数打标记 这样效率是\(O(NlnN)\)的 埃氏筛法 把上面的筛法优化一下, 我们可以发现, 如果一个合数x是
1 //在150之内 是三的倍数 输出Zzz 是5个倍数输出 Lll 是7的倍数输出zlzl 2 int i =1; 3 for(i = 1; i<=150;i++) 4 { 5 System.out.print(i+" "); 6 7 if(i%3==0) 8 { 9
数论——两种质数筛法 1. 埃氏筛 $$ O(n loglogn ) $$ 质数的倍数都是合数。借助这个性质,我们可以先找到一个质数,并利用这个质数,将范围内所有非质数(合数)的给先打上标记 缺点:6会被2和3给打上两次标记,会造成计算的浪费 bool nprime[N];//0为否定,为质数 ,1为肯定,为非质数 int p
1、什么是字节对齐 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是,在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。
【问题描述】 输出 包含n 或者是n的倍数的所有数 【输入形式】 正整数 m,n(0<m,n<1000000) 【输出形式】 从小到大排列的不大于 m 的特殊正整数(包含n,或者是n的倍数)。 #include<iostream> #include<sstream> #include<cmath> using namespace std; int main() { int n,m; string
对 10007 (素数)取模的理由 ACM题目里...为什么大整数经常是对10007取模而不是10006或者10008什么的?难道是因为这是个接近且大于10000的素数?这有什么必要?取模嘛...没必要非得是素数啊 对素数取模一般能得到较好的离散效果,如果你对10006或10008取模,那所有2的倍数仍然都是2的倍数
一、break语句 用于结束循环语句,通常与分支结构if一起使用 #从键盘输入密码,最多输入三次,如果正确就结束循环。 ''' for i in range(3): password = int(input('请输入您的密码')) if password==888: break print('您还可以输入',2-i,'次') ''' a=0
https://www.luogu.com.cn/problem/P4018 题意: 思路: 因为数据范围巨大,所以猜是个规律题。 先写个平淡的有向图游戏的和,然后打表! 代码: int t,n,m; int primes[N],cnt; bool st[N]; int sg[110]; void get(){//线性筛 for(int i=2;i<N;i++){ if(!st[i]) primes[cnt++]
LINK 题意 输入四个数 a , b , c , d a,b,c,d
Description 闰年(Leap Year)是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的,补上时间差的年份为闰年。 闰年2月有29天,全年共有366天,分为普通闰年和世纪闰年,普通闰年是指公历年份是4的倍数的,且不是100的倍数,世纪闰年则必须是400的倍数。 Input 输入一个
给你一个整数数组 arr,请你检查是否存在两个整数 N 和 M,满足 N 是 M 的两倍(即,N = 2 * M)。 更正式地,检查是否存在两个下标 i 和 j 满足: i != j0 <= i, j < arr.lengtharr[i] == 2 * arr[j] 示例 1: 输入:arr = [10,2,5,3]输出:true解释:N = 10 是 M = 5 的两倍,即 10 = 2 * 5 。
原题链接 考察:构造 思路: 对于n,如果每次x都能+-(n-1)的倍数,那么一定可以使x变成n的倍数. \[x = n*x-(n-1)*x \]\[x+(n-1)x = n*x \] 由此这三步为: 使a[1~n-1]变为n的倍数 使a[n]变成0 使a[1~n]变成0 Code #include <iostream> #include <cstring> using namespace st
原题链接 考察:约数 这题很久以前做过一次,但我没写博客,结果再来一次我还是不会(.) 错误思路: 倍数法求每个a[i]的倍数,基本代码如下: for(int i=1;i<=n;i++) { scanf("%d",&a[i]); for(int j=1;j<=M/a[i];j++) sum[j*a[i]]++; } 一旦数据出现大量1+1e6或者
该库仅支持烧录了通用固件的涂鸦 WiFi+BLE 、WiFi模组,在Arduino UNO板子上验证通过。 注意:Arduino 中的 默认Serial 串口已被Tuya mcu sdk 接管,请不要对默认Serial(引脚 0 ,1)做任何操作。 一、demo 介绍 涂鸦模组和Arduino板连接时会干扰到对Arduino板的烧录,烧录时应断开Arduin
效果图: 需要用到外部的gifAnimation库,用于导出gif文件,下载好gifAnimation库之后将其解压到速写本所在目录下的libraries下,如图: 之后重启我们的Processing,在我们菜单栏速写本中出现GifAnimation 下面直接使用即可,代码如下: import gifAnimation.*; GifMaker gif; float minSc
简介 虽然超时了, 但是我还是想把这种思想放在这里. 这肯定可以做(现在是回溯增加), 改为回溯减少一定就可以了. code #include <iostream> #include <vector> #include <algorithm> using namespace std; class Solution { public: void dfs(vector<int> &candidates, vector
考试情况 少了一道题多了15分钟,依然很自闭… A题 做了非常久,错误点在于普遍存在的一个观念:如果n是a的倍数且n是b的倍数,那么n就是a*b的倍数。很明显能举出反例30是10和15的倍数但并不是150的倍数。所以就推翻了之前的做法,修改过后完美AC B题 也有些棘手,依然存在一个观念:只有两
设计一个算法,计算出n阶乘中尾部零的个数样例 11! = 39916800,因此应该返回 2对于这个问题,我们的思路如下,首先要想得到尾部为0,那么一定是乘以5或者5的倍数,才会得到这样的结果,那么举一个例子,我们设参数为101,也就是101的阶乘尾部有多少个零,我们列举一下5,10,15,20,25,30,35,40,45,50,
方法一: for i in range(1,101): if i%7==0: print(i)方法二: for i in range(1,100//7+1): print(i*7) 方法三: for i in range(7,100//7*7+1,7): print(i) 方法四: i = 1while i*7<=100: print(i*7) i += 1———————
判断条件: 当前的年份能被4整除但不能被100整除,或者能被400整除。 口诀:四年一闰;百年不闰;四百年再闰; 是四的倍数,但是当是百年的时候,必须是400的倍数。 参考 https://zhidao.baidu.com/question/2016143539119505908.html 地球公转的时长是固定的,365天5小时48分46秒。 近似365天6
原题链接 考察:背包dp 思路: 组合问题一般用背包dp解决.f[i][j][k]表示前i个数选j个数,余数为k的最大和. 很容易想到状态转移方程f[i][j][k] = f[i-1][j-1][Get_Mod(k-a[i],K)]+a[i],f[i-1][j][k]之间取最值.时间复杂度是105*103*3 只能过8个数据.此时需要考虑一些优
统计所有小于非负整数 n 的质数的数量。 class Solution { public: int countPrimes(int n) { if(n < 2) return 0; vector<int> hash(n, 1); hash[0] = 0; hash[1] = 0; int pos = 2; while(pos < hash.size()){