- 博客(16)
- 收藏
- 关注
原创 2020牛客寒假算法基础集训营1
A - honoka和格点三角形传送题意:N*M大小的格点 可以组成多少面积大小为1且顶点在格点上的三角形;#include<bits/stdc++.h>using namespace std;const int mod = 1e9+7;int main(){ long long n,m,ans=0; cin>>n>>m; ...
2020-02-27 10:49:39 154
原创 字典树 (The 2019 ICPC Shanghai)
B Prefix Code传送门字典树:#include<bits/stdc++.h>using namespace std; const int N = 1e5+7; // 树节点个数 int tree[N][11],cnt;bool vis[N]; bool add( char *s ){ int len=strlen(s) , now=0; ...
2020-02-19 17:24:55 147
原创 逆序对的数量 (归并排序)
788. 逆序对的数量 题意描述:解题思路: 根据逆序对的定义知道,其数量可以在归并排序的过程中统计;每次交换时 mid - i + 1 (小于a[j] 的数的区间长度) 的和,即为结果;#include<iostream>using namespace std;const int N = 1e5+7;int a[N],tmp[N];long long ans=0;...
2020-02-05 23:08:19 370
原创 外卖店优先级 (优化模拟)
1241. 外卖店优先级 题意描述:解题思路:单个订单处理肯定超时,所以批量处理某时刻的订单,通过借助三个数组来实现;#include<iostream>#include<algorithm>#define long long LLusing namespace std;const int N = 1e5+7;typedef pair<int ,...
2020-02-05 22:58:09 611 2
原创 航班时间 (数学 模拟 输入)
1231. 航班时间 题意描述:解题思路:此题输入巨恶心,所以使用getline()读入后,再使用sscanf()处理,得到的时间再都转化为秒,相加减后得到总秒数再转化输出;数学思想:去程时间差 与回程时间差 相加后抵消了地区时差,得到二倍的实际单程飞行时间;sscanf()的使用方法入口#include<iostream>#include<cstring>...
2020-02-05 22:37:56 354
原创 日期问题(枚举)
1229. 日期问题 题意描述:方法一:优点:容易理解,容易想出;缺点:需要debug,代码较多;#include<iostream>#include<algorithm>#include<cstdio>using namespace std;int days[]={0,31,0,31,30,31,30,31,31,30,31,30,3...
2020-02-05 22:09:54 198
原创 递增三元组(前缀和 二分)
1236. 递增三元组 题意描述:解题核心:遍历B数组以寻找满足条件的A中和C中元素的个数;解法一前缀和: 由于A,B,C元素值较小,可做数组下标;#include<iostream>#include<cstdio>#define LL long longusing namespace std;const int N = 1e5+7;int n,...
2020-02-05 21:50:55 338
原创 四平方和(unordered_map()预处理再枚举)
1221. 四平方和 题目描述:解题思路: 预处理a和b时使用unordered_map()保存结果,再枚举c,d ;hash_map , unordered_map本质是一样的,只不过 unordered_map被纳入了C++标准库标准。unordered_map()介绍:基于哈希表,数据插入和查找的时间复杂度很低,几乎是常数时间,而代价是消耗比较多的内存。#include &...
2020-02-05 17:43:59 156
原创 带分数(递归 搜索 剪枝)
1209. 带分数 题意描述:100可以表示为带分数的形式:100 = 3 + 69258/714特征:带分数中,数字 1∼9分别出现且只出现一次(不包含 0);求输入的正整数有多少种表示法;递归+枚举:#include<cstdio>#include<iostream>#include<algorithm>using namespace std...
2020-02-05 16:58:26 123
原创 组合型枚举(递归及非递归)
93. 递归实现组合型枚举 (从1~n 中挑m个数枚举)递归(yxc):优解#include<iostream>using namespace std;int n,m;void dfs(int k,int sum,int state){ if(sum+n-k<m) return ; //剩下的未选个数不足m个; if(sum==m){ ...
2020-02-05 16:27:17 592
原创 费解的开关(递推)
95. 费解的开关 (算法标签:递推)乍一看无从下手,但仔细分析后发现:下一行的状态由上一行的变化唯一确定,有些类似 N皇后;#include<bits/stdc++.h>using namespace std;const int N = 6;void copy(char a[][N],char b[][N]){ for(int i=0;i<N;i++){ ...
2020-02-05 16:11:46 170
原创 一维 二维 前缀和
一维 二维 前缀和一维: 略二维:模板题入口#include<bits/stdc++.h>using namespace std;const int N=1010;int a[N][N],s[N][N];int n,m,k;int main(){ cin>>n>>m>>k; for(int i=1;i<...
2020-02-04 22:18:08 88
原创 线段树(四类)
线段树功能:变化比较多,能解决树状数组不能解决的问题,复杂度O(4*log n)模板题入口#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;const int N = 1e5+7;int w[N];...
2020-02-04 22:03:47 1265
原创 树状数组
树状数组:功能:大量动态修改数组元素的值:add(int x,int v);动态求数组区间元素的和 query(int x);写的模板题传送#include<iostream>#include<cstdio>using namespace std;const int N = 1e5+7;int tr[N];int w[N];int n,m;i...
2020-02-04 21:59:41 126
原创 一维 二维 差分
一维 二维 差分一维:#include<iostream>using namespace std;const int N = 1e5+7;int a[N];int main(){ int n,m; cin>>n>>m; for(int i=1;i<=n;i++) scanf("%d",&a[i]); for (int i...
2020-02-04 21:51:41 200
转载 sscanf的使用
sscanf函数用法详解 名称: sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: Int sscanf( string str, string fmt, mixed var1, mixed var2 … ); int scanf( const char format [,argument]… ); 说明: sscanf与scanf类似,都是用...
2020-02-01 14:36:52 122
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人