自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 数组实现哈希表的拉链法

遇到具体问题时,hash函数取模的N为比数据范围大的最小的质数就行,可以提前打表求出。#include<iostream>#include<cstring>using namespace std;const int N=100003;int n;int h[N],e[N],ne[N],idx;int hs(int x){ return ((x%N)+N)%N;}bool insert(int x){ int t=hs(x); e[id

2021-03-20 19:28:29 109

原创 小明放学

原题链接#include<iostream>using namespace std;long long res;int r,y,g,n;int main(){ cin>>r>>y>>g>>n; while(n--){ long long k,t; cin>>k>>t; if(!k)res+=t; else{

2021-03-16 14:33:54 57

原创 称检测点查询

原题链接#include<iostream>#include<algorithm>using namespace std;vector<pair<int,int>>res;int n,x,y;int dist(int a,int b){ return (a-x)*(a-x)+(b-y)*(b-y);}int main(){ cin>>n>>x>>y; for(int i=1;i

2021-03-16 14:19:48 85

原创 稀疏向量

原题链接本题只用了一个HashMap来存储,差点超过空间,有点极限。import java.util.HashMap;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n, a, b; n = sc.nextInt(); a = sc.nextInt(); b = sc.n

2021-03-16 09:23:39 100

原创 线性分类器

原题链接本题需要注意按照官网的数据范围是可能爆int的,不过官网的数据比较水,int也给过,下面代码用了long来存。import java.util.Scanner;public class Main { static Node[] nds; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt()

2021-03-15 21:13:11 78 1

原创 化学方程式

用java练练手。遇到括号递归进行处理,就是传递引用比价麻烦,这里是穿了个数组,以后想到优雅的做法在补充。import java.util.HashMap;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); sc.nextLine(); for

2021-03-15 15:39:44 92 1

原创 回收站选址

原题链接#include<iostream>using namespace std;int n;const int N=1010;pair<int,int>arr[N];int res[5];bool judge(int a,int b){ if(arr[a].first==arr[b].first){ return abs(arr[a].second-arr[b].second)==1; }else if(arr[a].seco

2021-03-14 16:14:44 84

原创 报数

原题链接#include<iostream>#include<string>using namespace std;int res[4],n;int main(){ cin>>n; for(int i=1;i<=n;i++){ if(i%7==0||to_string(i).find('7')!=-1){ res[i%4]++; n++; } }

2021-03-14 15:31:51 59

原创 推荐系统(java80分 c++100分)

80分代码,原本打算熟悉一下java,结果写吐了,又臭又长,明天试试c++import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.util.ArrayList;import java.util.HashMap;import j

2021-03-14 00:01:13 111

原创 小明种苹果(续)

原题链接注释那行为特判连续三个的情况,官网得了90就离谱,去掉注释就是100分。#include<iostream>using namespace std;int n;const int N=1010;bool st[N];int main(){ cin>>n; int sum=0; for(int i=0;i<n;i++){ int m,t,cur=0; cin>>m; f

2021-03-13 13:51:51 44

原创 小明种苹果

原题链接#include<iostream>using namespace std;int n,m;int main(){ cin>>n>>m; int t=0, k=1, p=0; for(int i=1;i<=n;i++){ int x; cin>>x; t+=x; int a=0; for(int j=1;j<=m;j++){

2021-03-13 13:10:54 62

原创 二十四点

好长时间没写Java了,用java水一道模拟题。哈希表里面存的是优先级,弹栈时要注意,假如是a/b弹栈弹出的先是b再是a,注意calc函数里面的’-‘跟’/’。import java.util.HashMap;import java.util.Map;import java.util.Scanner;import java.util.Stack;public class Main { private static Map<Character, Integer> m = new H

2021-03-12 22:26:26 57

原创 小中大

#include<iostream>using namespace std;int n;const int N=1e5+10;int arr[N];int main(){ cin>>n; for(int i=1;i<=n;i++)cin>>arr[i]; int a,b,c; double b2; a=arr[1]; c=arr[n]; if(a<c)swap(a,c); if(n%

2021-03-12 16:29:34 60

原创 数据中心(kruskal)

原题链接本题需要知道一个结论,最小生成树的最大权值再所有生成树中也是最小的。#include<iostream>#include<algorithm>using namespace std;int n,m,root;const int M=1e5+10;const int N=5e4+10;struct edg{ int v,u,t; bool operator <(const edg e1)const{ return t&l

2021-03-12 15:54:29 69

原创 小明上学

#include<iostream>using namespace std;int r,y,g,n;int main(){ int res=0; cin>>r>>y>>g>>n; while(n--){ int k,t; cin>>k>>t; if(k==0||k==1)res+=t; else if(k==2)res+=(t+

2021-03-10 19:23:12 54

原创 再卖菜(差分约束与spfa)

试题编号: 201809-4试题名称: 再卖菜时间限制: 1.0s内存限制: 256.0MB问题描述: 问题描述  在一条街上有n个卖菜的商店,按1至n的顺序排成一排,这些商店都卖一种蔬菜。  第一天,每个商店都自己定了一个正整数的价格。店主们希望自己的菜价和其他商店的一致,第二天,每一家商店都会根据他自己和相邻商店的价格调整自己的价格。具体的,每家商店都会将第二天的菜价设置为自己和相邻商店第一天菜价的平均值(用去尾法取整)。  注意,编号为1的商店只有一个相邻的商店2,编号为n的商店只有一

2021-03-10 15:13:16 110

原创 买菜

#include<iostream>using namespace std;const int N=1e6+10;bool m[N];int n;int main(){ int res=0; cin>>n; for(int i=0;i<n;i++){ int a,b; cin>>a>>b; for(int j=a;j<b;j++)m[j]=true; }

2021-03-09 21:44:18 87

原创 买菜

#include<iostream>using namespace std;int n;const int N=1010;int arr[N];int main(){ cin>>n; for(int i=1;i<=n;i++) cin>>arr[i]; cout<<(arr[1]+arr[2]>>1)<<' '; for(int i=2;i<=n;i++){

2021-03-09 21:34:38 59

原创 快排板子

#include<iostream>using namespace std;int n;const int N = 100010;int arr[N];void quick_sort(int l, int r) { if (l >= r)return; int i = l - 1, j = r + 1; int t = arr[l + r >> 1]; while (i < j) { do i++; whil

2021-03-08 22:34:35 81

原创

堆的两种核心操作#include<iostream>using namespace std;const int N = 1e5 + 10;int heap[N];int len;void down(int idx) { int t = idx; if (idx * 2 <= len && heap[idx * 2] < heap[t])t = idx * 2; if (idx * 2 + 1 <= len &&

2021-03-08 21:52:50 61

原创 棋局评估

#include<iostream>using namespace std;int t;int arr[3][3];bool judge(){ for(int i=0;i<3;i++) if(arr[i][0]==arr[i][1]&&arr[i][0]==arr[i][2]&&arr[i][0]!=0)return true; for(int i=0;i<3;i++) if(arr[0][i]==arr[

2021-03-07 14:41:34 85

原创 碰撞的小球

#include<iostream>#include<cstring>using namespace std;const int N=110;const int M=1010;struct ball{ int dir; int pos;}b[N];int n,l,t;int pz[M];int main(){ cin>>n>>l>>t; for(int i=1;i<=n;i++){

2021-03-07 13:27:43 61

原创 跳一跳

#include<iostream>using namespace std;int main(){ int t,res=0,pre=0; cin>>t; if(t==0){cout<<0;return 0;} res=pre=t; while(cin>>t,t!=0){ if(t==1)pre=1; else if(t==2){ if(pre==1)pre=

2021-03-06 22:06:45 69

原创 行车路线

拆点加dijkstra#include<iostream>#include<cstring>using namespace std;int n,m;const int N=510;const int M=1010;int g[N][N][2];int d[N][M];//d[i][j]到达i号点连续走的小路为j的最小花费bool v[N][M];int dijkstra(){ memset(d,0x3f,sizeof d); d[1][0]

2021-03-06 21:33:29 90

原创 游戏

#include<iostream>#include<queue>using namespace std;int n,k;queue<int>q;int main(){ cin>>n>>k; for(int i=1;i<=n;i++)q.push(i); int idx=1; while(q.size()>1){ int t=q.front(); q.pop(

2021-03-06 15:35:08 97

原创 最小差值

#include<iostream>#include<algorithm>using namespace std;int n;const int N=1010;int arr[N];int main(){ cin>>n; for(int i=0;i<n;i++)cin>>arr[i]; sort(arr,arr+n); int res=1010; for(int i=1;i<n;i++)res

2021-03-06 15:22:08 68

原创 Markdown

#include<iostream>#include<vector>using namespace std;vector<string>v;void clj(int l,int r,string s){ int flag=1; string tx; string wz; int i=l+1; while(s[i]!=']')i++; string str=s.substr(l+1,i-1-l);

2021-03-06 15:11:11 70

原创 通信网络

#include<iostream>#include<vector>#include<cstring>using namespace std;const int N=1010;vector<int>g1[N],g2[N];bool v1[N],v2[N];int n,m;void dfs1(int u){ v1[u]=true; for(int t:g1[u]) if(!v1[t])dfs1(t);}void

2021-03-05 21:16:57 65

原创 公共钥匙盒

#include<iostream>#include<vector>#include<algorithm>using namespace std;const int N=1010;int arr[N];vector<pair<int,int>>h;vector<pair<int,int>>j;int x,y;int main(){ int n,k; cin>>n>>

2021-03-05 20:00:19 90

原创 打酱油

#include<iostream>using namespace std;int main(){ int n; cin>>n; int res=n/10; while(n>=50)n-=50,res+=2; if(n>=30)res++; cout<<res; return 0;}

2021-03-05 18:52:42 65

原创 地铁修建(dijkstra和kruskal两种方法)

求的是从1号点到n号点的最长路径的最短值是多少。d[i],表示从1号点到i号点的最长路径的最短距离。最短路上的dp问题,csp前几届还有从一号店到n号点经过至多k个特殊点的问题,再最短路上面应用dp问题常考。下面时堆优化的dijkstra算法求最短路。#include<iostream>#include<cstring>#include<queue>#include<vector>using namespace std;int n,m;con

2021-03-05 16:37:47 208

原创 学生排队

#include<iostream>using namespace std;int n,m;const int N=1010;int arr[N];int main(){ cin>>n>>m; for(int i=1;i<=n;i++)arr[i]=i; while(m--){ int a,b; cin>>a>>b; int i=-1; fo

2021-03-05 14:48:48 53

原创 压缩编码

典型的区间dp问题,答案为一颗Huffman树,通过枚举树的分界点,将其分成左右两边,左右两边分别求解,左右两个子问题的解再加上左右两边每个节点的权值的和,为最终答案。本题需要注意反推dp的初始值,当长度为1时,应该为0,才能得到最终答案。#include<iostream>#include<cstring>using namespace std;const int N=1010;int n;int arr[N],sum[N];int dp[N][N];int m

2021-03-05 14:08:34 77

原创 权限查询

给爷写吐了,这个模拟真的恶心。#include<iostream>#include<vector>#include<unordered_map>#include<sstream>using namespace std;const int N = 110;int p, r, u, q;struct { string name; vector<pair<string, int>>v;}js[N];st

2021-03-04 22:42:39 154 1

原创 分蛋糕

#include<iostream>using namespace std;int n,k;const int N=1010;int arr[N];int main(){ cin>>n>>k; for(int i=1;i<=n;i++)cin>>arr[i]; int res=0; int tmp=0; for(int i=1;i<=n;i++){ tmp+=arr[i];

2021-03-04 19:11:29 139 1

原创 工资计算

#include<iostream>using namespace std;int sa[]={0,1500,4500,9000,35000,55000,80000,200000};double sl[]={0,0.03,0.1,0.2,0.25,0.3,0.35,0.45};int fun(int t){ if(t<=3500)return t; int num=t; num-=3500; double s=0; int idx=1;

2021-03-03 23:32:36 117 1

原创 最短路径和最小生成树常见算法整理

n点 m边1.spfa算法最坏情况o(nm)一般情况下是线性的复杂度,当出现网格状的数据时容易出现最坏情况,一般不会被卡,边权可以是负数,但是不能有负环。最常用的算法因此写在第一个。算法思想:该算法又叫做队列优化的bellman-ford算法,再bellman-ford算法将变小的保存在队列中(也就是会对距离产生变化的点)#include<iostream>#include<vector>#include<queue>#include<cstring&g

2021-03-02 21:21:10 342

原创 路径解析

需要注意的是…也可能是文件名#include<iostream>#include<vector>using namespace std;int n;string target;vector<string>v;vector<string> get(string s){ vector<string> res; for(int i=0;i<s.size();i++){ if(s[i]=='/')c

2021-03-02 16:11:18 63

原创 中间数

#include<iostream>using namespace std;int n;const int N=1010;int arr[N];int fun(){ for(int i=0;i<n;i++){ int a=0,b=0; for(int j=0;j<n;j++){ if(arr[i]>arr[j])a++; if(arr[i]<arr[j])b++;

2021-03-02 12:48:37 61

原创 俄罗斯方块

#include<iostream>using namespace std;const int N=20;int arr[N][N];int blk[4][4];//判段是否冲突bool judge(int r,int c){ for(int i=0;i<4;i++) for(int j=0;j<4;j++){ if(blk[i][j]){ if(arr[i+r][c+j])return true;

2021-03-02 12:39:45 55

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除