MUL

牛客网

你。 提交于 2021-01-27 03:51:28
排序 - 爱奇艺 https://www.nowcoder.com/practice/e496d8e885a949d18476b2dea1e594a9?tpId=90&tqId=30794&tPage=1&rp=1&ru=%2Fta%2F2018test&qru=%2Fta%2F2018test%2Fquestion-ranking 题目描述 牛牛有一个长度为n的整数序列,牛牛想对这个序列进行重排为一个非严格升序序列。牛牛比较懒惰,他想移动尽量少的数就完成重排,请你帮他计算一下他最少需要移动多少个序列中的元素。(当一个元素不在它原来所在的位置,这个元素就是被移动了的) 输入描述: 输入包括两行,第一行一个整数n(1 ≤ n ≤ 50),即序列的长度 第二行n个整数x[i](1 ≤ x[i] ≤ 100),即序列中的每个数 输出描述: 输出一个整数,即最少需要移动的元素个数 示例1 输入 复制 3 3 2 1 输出 复制 2 思路:先将数组备份到y,再将x排序,最后逐位比较x与y不同的数字个数 #include<cstdio> #include <iostream> #include <algorithm> #include <cstring> using namespace std; #define N 50 int main() { int n, x[N], y[N]; cin

Math Summary 数论总结

自古美人都是妖i 提交于 2021-01-24 06:54:47
一、素数 Miller-Rabin 首先介绍一下伪素数:若n是一个正整数,且存在正整数a满足$a^{n-1}\equiv1\;(mod\;n)$ (费马小定理,但n不一定为素数) 那么我们说n是基于a的伪素数 如果一个数是伪素数,它很大概率是素数 但一个数不是伪素数,它一定不是素数 那么对于要判断的数$n$,我们只需要多次选取$a$来判断是否是伪素数即可 然而是否伪素数通过了所有底数的测试就很大概率是素数了呢? 其实有一种叫$Carmichael$数的东西,十亿内有$600$多个,最小的如$561$,可以通过所有底数的测试。 那咋整?我们可以继续探测啊QwQ 二次探测定理:若$a^2~mod~p=1$,且$a!=1$,$a!=-1$则$p$必为合数。 设$p-1=2^ld$,可以先测$a^d$,然后平方$l$次。 当两倍两倍往上加的时候,判断是否合法,如果出现不合法就$return$。判定方法结合定理看代码吧QwQ…… 至于伪素数的判定就两倍两倍加回原数之后在弄吧。 代码和$Pollard~Rho$的放一起吧QAQ Pollard Rho 大数分解…… 暂时还不是很懂就不瞎讲了……先坑着吧,不过我写的是第一篇博客里的第二种判环方法QAQ 博客一 博客二 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4

JavaScript(es6)数组常用的方法

喜欢而已 提交于 2021-01-19 05:52:30
<h2>常用方法</h2> <p>1.forEach()</p> <div class="cnblogs_code"> <pre>var data = [1,2,3,4,5]; var sum = 0;<br />//求和 data.forEach((item)=>{sum+=item}) //给原数组的每个值加1 data.forEach((value,index,data)=>{data[index] = value + 1}) </pre> </div> <p>2.concat()  //合并多个数组,返回合并后的新数组,原数组没有变化。</p> <div class="cnblogs_code"> <pre>const array = [1,2].concat(['a', 'b'], ['name']); // [1, 2, "a", "b", "name"]</pre> </div> <p>3.filter()  //<strong>返回一个新数组,包含通过callback函数测试的所有元素。</strong></p> <div class="cnblogs_code"> <pre>var fil = [5,4,3,2,1]; smallvalues = fil.filter((x)=>{return x < 3}); console.log(smallvalues)/

The Preliminary Contest for ICPC China Nanchang National Invitational and International Silk-Road...

ⅰ亾dé卋堺 提交于 2021-01-13 09:52:06
两个队友链接: YZJ CKX A. PERFECT NUMBER PROBLEM 题库链接 思路:2^1*(2^2-1), 2^2*(2^3-1), 2^4*(2^5-1), 2^6*(2^7-1), 2^12*(2^13-1) 代码: #include<bits/stdc++.h> using namespace std; int main() { cout << " 6\n28\n496\n8128\n33550336\n " ; return 0 ; } View Code B. Greedy HOUHOU 题库链接 C. Angry FFF Party 题库链接 思路:java大数算,贪心减 代码: import java.util.* ; import java.math.* ; public class Main { /** * @param args */ static class Matrix { BigInteger a[][] = new BigInteger [2][2 ]; public void init() { for ( int i = 0; i < 2; ++i) for ( int j = 0; j < 2; ++j) a[i][j] = BigInteger.ZERO; } public void _init() { init(); for (

正则表达式 实现计算器

♀尐吖头ヾ 提交于 2021-01-08 22:54:47
import re bracket = re.compile(r'\([^()]+\)') # 寻找最内层括号规则 mul = re.compile(r'(\d+\.?\d*\*-\d+\.?\d*)|(\d+\.?\d*\*\d+\.?\d*)') # 寻找乘法运算规则 div = re.compile(r'(\d+\.?\d*/-\d+\.?\d*)|(\d+\.?\d*/\d+\.?\d*)') # 寻找除法运算规则 add = re.compile(r'(-?\d+\.?\d*\+-\d+\.?\d*)|(-?\d+\.?\d*\+\d+\.?\d*)') # 寻找加法运算规则 sub = re.compile(r'(-?\d+\.?\d*--\d+\.?\d*)|(-?\d+\.?\d*-\d+\.?\d*)') # 寻找减法运算规则 c_f = re.compile(r'\(?\+?-?\d+\)?') # 检查括号内是否运算完毕规则 strip = re.compile(r'[^(].*[^)]') # 脱括号规则 def Mul(s): """计算表达式中的乘法运算""" exp = re.split(r'\*', mul.search(s).group()) return s.replace(mul.search(s).group(), str(float(exp

程序填空题(二)

风格不统一 提交于 2021-01-04 16:41:32
1.尼科彻斯定理 This program is to verify Theorem of Nicoqish.That is the cube of any integer can be represented as the sum of some continue odd numbers.For example, 8^3=512=57+59+61+63+65+67+69+71. #include <iostream> using namespace std; int main() { int n,a,i; while(1) { cout<<"Please input a integer to verify(0 to quit): "; cin>>n; if(n==0) __________; // (1) // 输出等差数列,首项为a*a-a+1,公差为2,项数为n a=n*n-n+1; cout<<n<<"*"<<n<<"*"<<n<<"="<<n*n*n<<"="<<a; for (i=1; __________;i++) // (2) cout<<"+"<<__________; // (3) cout<<endl; } return 0; } 2.角谷猜想 This program is to verify Jiaogu Guess.That is given any

流水线中数据相关的理解(RAW、WAR和WAW)

送分小仙女□ 提交于 2020-12-28 11:41:13
计算机组成原理一书中指出流水线中有三种数据相关:写后读(RAW)相关、读后写(WAR)相关、写后写(WAW)相关。 那么这里该怎么理解这个A(after)呢?比如说第一条指令中读取了X,第二条指令中要写X, 本来应该先读再写,但是由于流水线的存在,发生了第二条指令写完后第一条才读的情形,也就是发生了先写后读,称之为读后写(WAR)相关。 这里的重点是:前后有两条指令,分为三种情况: 第一条指令是读操作,第二条指令是写操作,那么只可能发生读后写(WAR)相关 第一条指令是写操作,第二条指令是读操作,那么只可能发生写后读(RAW)相关 第一条指令是写操作,第二条指令也是写操作,那么只可能发生写后写(WAW)相关 举三个例子: LDA R1, A    ;M(A)->R1,M(A)是存储单元 ADD R2, R1   ;(R2)+(R1)->R2 分析:第一条指令向R1中写入了新值,第二条指令读取了R1中的值,先写后读,写后读(RAW)相关。 ADD R3, R4    ;(R3)+(R4)->R3 MUL R4, R5    ;(R4)*(R5)->R4 分析:第一条指令读取了R4中的内容,第二条指令向R4中写入了新值,先读后写,读后写(WAR)相关。 LDA R6, B    ;M(B)->R6,M(B)是存储单元 MUL R6, R7    ;(R6)*(R7)->R6 分析

c/c++ 动态库与静态库的制作和使用

假装没事ソ 提交于 2020-12-28 08:05:44
静态库的用法 静态库的文件名 libxxx.a -->对应windows的.lib文件 做静态库的命令: ar rcs libxxx.a file1.o file2.o file.o 使用静态库: gcc main.c -L lib/ -lxxx 注意:-L的作用是告诉gcc你的libxxx.a放在了哪个目录里;-l的作用是告诉gcc使用哪个静态库。 举个例子,目录结果如下: ├── include │ └── head.h ├── lib │ ├── main.c └── src ├── add.c ├── mul.c └── sub.c head.h int add(int, int); int sub(int, int); int mul(int, int); add.c int add(int a, int b){ return a + b; } sub.c int sub(int a, int b){ return a - b; } mul.c int mul(int a, int b){ return a * b; } 步骤1:在src目录执行下面的命令,生产.o文件 gcc -c *.c 执行后,在src目录下生产了add.o,sub.o,mul.o三个文件 步骤2:在src目录执行下面的命令,生产libCalc.a文件 ar rcs libCalc.a *.o

js闭包;递归

倾然丶 夕夏残阳落幕 提交于 2020-12-23 04:21:12
一.js闭包 闭包定义:当内部函数被保存到外面的时候,就会形成闭包 缺点:闭包会导致原有的作用域链不释放,造成内存的泄漏 (在函数执行前的一瞬间会生成自己的AO,这就是函数执行了2次,生成了两次AO,这两次AO是没有任何关联的 ) 优点:(1).实现共有变量 (2).做缓存 (3).实现封装让属性私有化 (4).模块化开发,防止污染全局变量 闭包实例: html: < ul > < li > 0 </ li > < li > 1 </ li > < li > 2 </ li > < li > 3 </ li > < li > 4 </ li > < li > 5 </ li > < li > 6 </ li > < li > 7 </ li > < li > 8 </ li > < li > 9 </ li > </ ul > js: < script > var lis = document.getElementsByTagName( " li " ); for ( var i = 0 ;i < lis.length;i ++ ){ // console.log(lis[i]); // lis[i].onclick = function(){ // console.log(i);//bibao // } ( function (i){ lis[i].onclick =

javascript 递归

偶尔善良 提交于 2020-12-22 06:19:54
概念 在程序中函数直接或间接调用自己,然后跳出结构,返回结果 递归的步骤(技巧) 假设递归函数已经写好 寻找递推关系 将递推关系的结构转换为递归体 将临界条件加入到递归体中 示例 求1+2+3+3+...n的和。 二逼青年: 首数加位数 ,乘以个数除以2 function sum(n){ return (1 + n) * n / 2 } console.log(sum(100)) //5050 普通青年: 写个循环 function sum(n) { let result = n while (n-- > 0) { result += n } return result } console.log(sum(100)) //5050 文艺青年: 有规律的序数运算,所以用递归 /*** * 假设递归函数已经写好为sum,既sum(100),就是求1-100的和 * 寻找递推关系: 就是 n 与 n-1 ,或 n-2 之间的关系,sum(n) == sum(n-1) + n, 前面的数字(n-1)之和和sun(n-1)加上本身n */ function sum(n){ return n==1 ? 1 : sum(n-1) + n //n=1的时候跳出 } console.log(sum(100)) //5050 求1+3+5+7+9+...(2n-1)第n项的结果和前n项和 二逼青年: