![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
zhaoweiming2019
东莞垃圾OIer
展开
-
判断勾股数
勾股数定义:又名毕氏三元数 。勾股数就是可以构成一个直角三角形三边的一组正整数。勾股定理:直角三角形两条直角边a、b的平方和等于斜边c的平方(a²+b²=c²)c++实现bool is_Pythagorean_triple(int a,int b,int c)//传入三条边{ int pow_a=a*a,pow_b=b*b,pow_c=c*c;//求他们的平方 if(pow_a+pow_b==pow_c) return true; if(pow_a+pow_c==pow_b)原创 2020-08-21 20:10:44 · 1659 阅读 · 0 评论 -
摄氏度&华氏度互化
摄氏度&华氏度互化知识:1 摄氏度=33.8 华氏度华氏度转摄氏度double f_to_c(int f){ double c=(5*(f-32))/9; return c;}摄氏度转华氏度double c_to_f(int c){ double f=(5/9)*c + 32; return f;}原创 2020-08-21 19:25:21 · 174 阅读 · 0 评论 -
归并排序【模板】
归并排序时间复杂度:O(log2n)流程1.分界点为中点:mid=(left + right)/22.分别递归排序两边3.归并——合二为一 O(n)这里我们就得到了两个排好序(从小到大),然后:再开出一个数组res,用i,j两个指针分别指向第一个第二个的开头比较i1与j1,不妨设i1小于j1,这时将i1放进res的第一个位置将i指针右移一位,指向i2比较i2与j1,不妨设j1小于i2,这时就将j1>放人res的第二位如此类推…如果当某一段的数放完了,另一段还有原创 2020-08-08 23:07:45 · 116 阅读 · 0 评论 -
一维前缀和与二维前缀和
前缀和什么是前缀和?前缀和是一个数组的某项下标之前(包括此项元素)的所有数组元素的和。作用:快速求出某一段区间的总和such as:求出a[3]+a[4]+…+a[15]=sum[15]-sum[2] //sum为前缀和优势:可以在O(1)的复杂度求出某一部分的总和设b[]为前缀和数组,a[]为原数组,根据这句话可以得到前缀和的定义式和递推式:【一维前缀和】根据上面的定义,我们可以很容易得到 sum[i] = sum[i-1] + a[i] 这样就可以得到前i个数的和原创 2020-08-08 23:01:19 · 88 阅读 · 0 评论 -
快速排序[模板]
快速排序确定分界点x:方法:q[l] //左端点q[r] //右端点q[(l+r)/2] //中点q[随便] //任意2.调整区间:把<=x的和>=x的分开(x随意,放两边都可以)暴力实现:int a[],int b[]; //a装<=x,b装>=xmemset(a,0x3f3f3f3f,sizeof(a));memset(b,0x3f3f3f3f,sizeof(b));for(int i=l;i<=r;原创 2020-08-08 22:53:36 · 107 阅读 · 0 评论 -
快速幂详解【模板】
快速幂洛谷链接AcWing链接快速幂的思想当我们求37时朴素算法就是Pow,或者连乘7次,这个要进行7次运算但我们可以用快速幂的思想31=332=933=81然后再将三次的值相加,就可以求出37这个思想还可以用于这道题 64位整数乘法这个思想非常高效,可以将原来O(n)的算法改成O(log2n)快速幂的模板int qmi(int m, int k, int p){ int res = 1 % p, t = m; while (k) {原创 2020-08-04 20:21:22 · 128 阅读 · 0 评论 -
判断回文数[模板]
要求: 判断一个数是否为回文数bool isPalindrome(int x) { if(x<0) return 0; int tmp=x;//x最后会变 long long res=0; while(x)//把每一位扣出来 { res=res*10 + x%10; x/=10; } return res==tmp; }原创 2020-07-22 23:10:39 · 80 阅读 · 0 评论 -
增减序列(IncDec Sequence)
增减序列题意:给定一个长度为 n 的数列 a1,a2,…,an,,每次可以选择一个区间 [l,r],使下标在这个区间内的数都加一或者都减一。求至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最少次数的前提下,最终得到的数列可能有多少种。分析:每次任意选两个数,一个加上1,另外一个减去1把b[2]到b[n]都变成0情况1: 2<=i,j<=n,选b[i]和b[...原创 2020-05-07 22:20:23 · 483 阅读 · 0 评论 -
完全背包笔记【优化】
优化后的完全背包PS:DP优化的根本就是等价变形AcWing链接优化前#include <bits/stdc++.h>using namespace std;int n,v;int c[1005],w[1005];int f[1005][1005]; int main(){ scanf("%d%d",&n,&v); for(int i=1;...原创 2020-04-27 22:40:55 · 139 阅读 · 0 评论 -
完全背包笔记
完全背包1.状态表示a.集合:所有从第i个物品开始选,总体积不超过j的物品的集合b.属性:max2.状态计算:a.f[i]的子集划分只要总体积不超过j就可以一直选如上图,在1到i中选,且总体积小于等于j,但第i个物品只能选0个,所以不选第i个物品故最大值为f[i-1,j]ps:做所有DP问题的时候,核心就是这个集合的定义三重简化成2重的推导过程总体推导过程:核...原创 2020-04-27 22:03:52 · 80 阅读 · 0 评论 -
P1036 选数 【洛谷】
原题链接-------------------------------------------------------------------------------------------------------------------------------------------------------------------------CODE:#include <bi...原创 2020-04-25 11:50:36 · 109 阅读 · 0 评论 -
P1307 数字反转【洛谷】
原题#include <bits/stdc++.h>using namespace std;string a;int main(){ cin>>a; int len=a.length(); int i=len-1; while(a[i]=='0') { a[i]=' '; i--; } len=i+1; if(a[0]=='-')...原创 2020-04-04 22:11:15 · 188 阅读 · 0 评论 -
【洛谷】 P1941 飞扬的小鸟 (题解)
题目链接这题关于DP用f[i][j]表示横坐标为i时高度为j的最少点击次数。用正无穷来表示不可能达到这个状态。于是我们可以分析出状态转移的方式:上升——完全背包转移方式下降——01背包转移方式超过m变为m——特判细节详见代码#include <cstdio>#include <iostream>#include <algorithm>us...原创 2020-02-25 17:50:32 · 162 阅读 · 0 评论 -
【洛谷】P1120 小木棍 [数据加强版](题解)
P1120 小木棍 [数据加强版]题解:#include <cstdio>#include <cstdlib>#include <iostream>int n, cnt, tot, maxn, minn, tm[70];void dfs(int res,int sum,int target,int p){ if(res == 0) {...原创 2020-02-18 17:40:37 · 134 阅读 · 0 评论 -
【codeforces】CF11A Increasing Sequence (题解)
CF11A Increasing Sequence入门题,就不解释了题解:算法复杂度为O(n)#include <iostream>#include <algorithm>using namespace std;int a[2001];int main(){ int n,b,ans; cin>>n>>b;...原创 2020-02-16 18:01:21 · 349 阅读 · 0 评论 -
【Codeforces】CF25A IQ test
CF25A IQ test题解:#include <iostream>using namespace std;int a[101];int main(int argc, char **argv){ int n; cin>>n; cin>>a[1]>>a[2]>>a[3];//先输入三个数 ...原创 2020-02-16 13:50:43 · 189 阅读 · 0 评论 -
【Codeforces】CF25A IQ test (题解)
题目链接由于此题过于水,所以就不解释了直接上题解题解:#include <iostream>using namespace std;int a[101];int main(int argc, char **argv){ int n; cin>>n; cin>>a[1]>>a[2]>>...原创 2020-02-16 13:47:43 · 712 阅读 · 0 评论 -
【codeforces】CF11B Jumping Jack (题解)
大水题让我们介绍一下STL库中的绝对值函数-----------abs()abs()是一个c++自带的绝对值函数,作用是将一个数取绝对值示例:#include <cstdlib>#include <cstdio>int main(){ int number = -1234; printf("number: %d absolute value: %d\n";...原创 2020-02-15 18:09:39 · 437 阅读 · 0 评论 -
【codeforces】CF9C Hexadecimal's Numbers (题解)
CF9C Hexadecimal's Numbersせむすけヌ题解:#include<iostream>#include<cstdio>using namespace std;int a[100],ans,n;int pow_(int a,int b){ int s=1; for(int i=1; i<=b; i++) s*=a; ret...原创 2020-02-15 17:21:29 · 211 阅读 · 0 评论 -
【洛谷】P2404 自然数的拆分问题 (题解)
P2404 自然数的拆分问题题解:#include <iostream>using namespace std;int n,sum;int a[15]={1};void print(int t){ for(int i=1;i<t;i++) { cout<<a[i]<<"+"; } cout<<a[t]<&l...原创 2020-02-14 16:19:38 · 482 阅读 · 0 评论 -
【洛谷】P1118 [USACO06FEB]数字三角形`Backward Digit Su (题解)
P1118 [USACO06FEB]数字三角形`Backward Digit Su`…第一次看到这个题的感受 :题解:#include <bits/stdc++.h>using namespace std;int n,sum;int ha[13],flag,yh[13][13];bool v[13];void print(){ for(int i=1; ...原创 2020-02-14 15:07:21 · 103 阅读 · 0 评论 -
【洛谷】P1023 税收与补贴问题 (题解)
P1023 税收与补贴问题题解:#include<iostream>#include<vector>#include<algorithm>using namespace std;int s, a, b, d, n = 0;int a1, a2, a3, b1, b2, b3;bool judge(int x){ int c1 = (a1...原创 2020-02-14 14:55:18 · 198 阅读 · 0 评论 -
【codeforces】题解 CF10A Power Consumption Calculation(题解)
模拟排序概率论解模拟题的方法:(1)认真仔细的读懂题目。模拟题的描述通常都比较详细,篇幅一般都比较长,应该边阅读边将有关的条件一条条地记录下来,阅读完成后要反复核对,绝对不能有错漏。(2)建立各个条件之间的关系,最好用一些简明的表格列出。(3)认真分析这些关系,并建立这些关系的数学模型。(4)规划各个模块的结构,用相应的语言、逐步求精的方法描述具体的算法。(5)编写程序,调试并运行...原创 2020-02-13 15:57:48 · 258 阅读 · 0 评论 -
【codeforces】 CF4C 【Registration system】(题解)
哈希表若关键字为k,则其值存放在f(k)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系f为散列函数,按这个思想建立的表为散列表。对不同的关键字可能得到同一散列地址,即k1≠k2,而f(k1)=f(k2),这种现象称为冲突(英语:Collision)。具有相同函数值的关键字对该散列函数来说称做同义词。综上所述,根据散列函数f(k)和处理冲突的方法将一组关键字映射到一个有限的连续...原创 2020-02-13 13:56:28 · 274 阅读 · 0 评论 -
【洛谷】P1024 一元三次方程求解 (题解)
P1024 一元三次方程求解题解:#include <bits/stdc++.h>using namespace std;int main(){ double a,b,c,d; cin>>a>>b>>c>>d; for(double i=-100;i<=100;i+=0.001) { ...原创 2020-02-12 16:27:04 · 200 阅读 · 0 评论 -
【洛谷】P1072 Hankson 的趣味题 (题解)
P1072 Hankson 的趣味题题解:提交效果图,亲试#include<cstdio>#include<iostream>#include<algorithm>#define ll long longusing namespace std;int prime[100001],n,size;bool notprime[100001...原创 2020-02-11 20:01:46 · 170 阅读 · 0 评论 -
【codeforces】CF5A Chat Server's Outgoing Traffic (题解)
CF5A Chat Server's Outgoing Traffic题解:#include<bits/stdc++.h>using namespace std;int ans=9,people ;int main() { string k;// while(getline(cin,k)) {// if(k[0]=='+') {// people+1;/...原创 2020-02-11 18:03:15 · 184 阅读 · 0 评论 -
CF4B Before an Exam
CF4B Before an Exam题解:#include<bits/stdc++.h>using namespace std;const int maxn=300+5;int n,sum,maxt[maxn],mint[maxn];int f[maxn][maxn];bool dp[maxn][maxn];void out(int i,int k) { if...原创 2020-02-11 17:33:43 · 175 阅读 · 0 评论 -
【Codeforces】CF3A Shortest path of the king (题解)
CF3A Shortest path of the king题解:#include<bits/stdc++.h>using namespace std;string s1,s2;int main() { cin>>s1>>s2; int x1=s1[0]-'a'+1,y1=s1[1]-'0',x2=s2[0]-'a'+1,y2=s2[1]-'...原创 2020-02-11 17:12:56 · 173 阅读 · 0 评论 -
【洛谷】P3955 图书管理员 (题解)
P3955 图书管理员题解:#include <bits/stdc++.h>using namespace std;int n,q,book[6666],len[6666],num[6666];int main() { cin>>n>>q; for(int i=1; i<=n; i++) { cin>>book[i]; }...原创 2020-02-11 16:45:53 · 595 阅读 · 0 评论 -
【洛谷】P1012 拼数 (题解)
P1012 拼数题解:#include<iostream>#include <cstring> using namespace std;string a[30]; int main(){ int n; cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; for(...原创 2020-02-11 16:41:06 · 160 阅读 · 0 评论 -
【洛谷】P1093 奖学金 (题解)
P1093 奖学金题解:#include <bits/stdc++.h>using namespace std;struct node { int a; int b; int c; int d; int w;};bool f(node a,node b) { if(a.d<b.d) { return 0; } else if(a.d==b.d&...原创 2020-02-11 16:39:09 · 413 阅读 · 0 评论 -
【洛谷】P1068 分数线划定 (题解)
P1068 分数线划定 题解:#include<bits/stdc++.h>using namespace std;long long n,m,f=0,x=0,r=0;long long k[100000],s[100000];int main() { cin>>n>>m; f=1.5*m+0.5; f=f-1; for(int i=0...原创 2020-02-11 16:37:09 · 267 阅读 · 0 评论 -
【洛谷】P1158 导弹拦截(题解)
P158 导弹拦截题解:#include<bits/stdc++.h>using namespace std;struct ca{ int o,p;}o[100005];int cmp(ca a,ca b){ return a.o>b.o;}int cccc(int x,int y,int a,int b){ double d; ...原创 2020-02-11 16:35:00 · 258 阅读 · 0 评论 -
[Codeforces] CF1C Ancient Berland Circus (题解)
CF1C Ancient Berland Circus题解:#include <bits/stdc++.h>using namespace std;char x[1000010];int main() { int n,i,j,k; cin>>n; for(i=1; i<=n; i++) { bool tt=true; cin>>...原创 2020-02-10 20:38:37 · 99 阅读 · 0 评论 -
【Codeforces】CF1B Spreadsheets (题解)
CF1B Spreadsheets题解:#include <bits/stdc++.h>using namespace std;char x[1000010];int main() { int n,i,j,k; cin>>n; for(i=1; i<=n; i++) { bool tt=true; cin>>x; int ...原创 2020-02-16 13:53:55 · 247 阅读 · 0 评论 -
【洛谷】选择客栈 (题解)
题目传送门题解:#include <bits/stdc++.h>using namespace std;int n,k,p;int color,price;int last[200005];int sum[200005];int cnt[200005];int ans = 0;int now;int main() { cin>>n>>k...原创 2020-02-10 16:59:33 · 188 阅读 · 0 评论 -
【洛谷】Hanoi 双塔问题 (题解)
题目传送门题解:#include<cstdio>using namespace std;int l,n;int a[201],b[201];void gjc() { int t=0; for (int j=200; j>0; j--) { l=b[j]*2+t; b[j]=l%10; t=l/10; }}void gjj() { int t=...原创 2020-02-10 16:53:36 · 519 阅读 · 0 评论