基础算法
Youth009
喵星人的夏天睡不醒!!
展开
-
数学思维题
题目描述xay has an array a of length n, he wants to know how many triples (i, j, k) satisfy ai×aj=akai×aj=ak。输入描述:The first line of input contains an integer n(1≤n≤1061≤n≤106).The second line of input contains n integers a1,a2,⋯ ,ana1,a2,⋯,an(1≤ai≤1061≤ai≤原创 2021-10-20 23:38:25 · 129 阅读 · 0 评论 -
二维前缀和
hdu最大子矩阵#include<bits/stdc++.h>using namespace std;int dp[1001][1001];int t,m,n,p,q,x,y;int main(){ //int i,j; int num=0; cin>>t; while(t--) { cin>>m>>n>>x>>y; memset(dp,0,sizeof(dp)); for(int原创 2021-04-17 12:37:48 · 89 阅读 · 0 评论 -
noi2011(高精度+快速幂+打表找规律)
20114010:2011查看提交统计提示提问总时间限制: 1000ms 内存限制: 65536kB描述已知长度最大为200位的正整数n,请求出2011^n的后四位。输入第一行为一个正整数k,代表有k组数据,k<=200接下来的k行,每行都有一个正整数n,n的位数<=200输出每一个n的结果为一个整数占一行,若不足4位,去除高位多余的0样例输入3528792样例输出1051815521思路来源于网络和大佬:遍历,会超时~~~指数是200位的数字,远远超原创 2021-04-05 15:59:06 · 290 阅读 · 0 评论 -
前缀和+差分(一些杂例哈哈)
#define get_sum(L,R)(L?sum[R]-sum[L-1]:sum[R])一维缀和#include<iostream>//一维前缀和using namespace std;//#define get_sum(L,R)(L?sum[R]-sum[L-1]:sum[R])const int n=5;int sum[n];int get_sum(int L,int R){ if(L!=0) return sum[R]-sum[L-1];原创 2021-04-09 20:17:42 · 81 阅读 · 0 评论 -
打表(空间换时间)
打表等待中···不做解释,想要深入了解就去找题刷叭!!!数的计算为了美观,为了不想手动换行,记得让电脑来~~~#include<iostream>using namespace std;long long int a[1001];long long dfs(int x){ if(x==1) return 1; long long ans=1; for(int i=1;i<=x/2;i++){原创 2021-04-09 12:14:57 · 130 阅读 · 0 评论 -
noi汉诺塔问题(难难难)
noi汉诺塔问题题目描述约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下、由小到大顺序串着由64个圆盘构成的塔。目的是将最左边杆上的盘全部移到中间的杆上,条件是一次只能移动一个盘,且不允许大盘放在小盘的上面。这是一个著名的问题,几乎所有的教材上都有这个问题。由于条件是一次只能移动一个盘,且不允许大盘放在小盘上面,所以64个盘的移动次数是:18,446,744,073,709,551,615这是一个天文数字,若每一微秒可能计算(并不输出)一次移动,那么也需要几原创 2021-03-20 19:31:19 · 437 阅读 · 0 评论 -
快速幂
强大的快速幂!!!int quickPower(int a, int b)//是求a的b次方{ int ans = 1, base = a;//ans为答案,base为a^(2^n) while(b > 0)//b是一个变化的二进制数,如果还没有用完 { if(b & 1)//&是位运算,b&1表示b在二进制下最后一位是不是1,如果是: { ans *= base; }//把ans乘上对应的a^(2^n) base *= base原创 2021-03-20 00:14:07 · 128 阅读 · 3 评论