-
个人简介
(^~^)-
#include<bits/stdc++.h> using namespace std; int d[1000005]; int main(){ int n,k,x,y; cin>>n>>k>>x>>y; for(int i=1;i<=n;i++){ int a; cin>>a; if(a>y){ d[i]=0; } else{ d[i]=(y-a)/x+1; } } sort(d+1,d+1+n); k=min(k,n); cout<<d[k]; }神奇药水!
#include<bits/stdc++.h> using namespace std; int fx[4][2]={1,0,0,1,-1,0,0,-1}; int n,m; int bfs(int x,int y){ queue(array<int,2>) que; vis[x][y]=1; que.push({x,y}); int res=0; while(que.size()){ int px=que.front()[0]; int px=que.front()[1]; que.pop(); res++; for(int i=0;i<4;i++){ int xx=px+fx[i][0]; int yy=py+fx[i][0]; if(xx>n||xx<1||yy>m||yy<1||vis[xx][yy]||mp[xx][yy]!='*')continue; vis[xx][yy]=1; que.push({xx,yy}); } } return res; } int main(){ }跳台阶
#include<bits/stdc++.h> using namespace std; int x[1010],y[1010]; int main(){ int n; cin>>n; for(int i=1;i<=n;i++){ cin>>x[i]>>y[i]; } long long ans=10000000000000000; for(int i=1;i<=n;i++){ long long res=0; for(int j=1;j<=n;j++){ if(j!=i){ res+=abs(x[i]-x[j])+abs(y[i]-y[j]); } } ans=min(ans,res); } cout<<ans; }拯救食堂
#include<bits/stdc++.h> using namespace std; int a[100005],b[100005],c[100005]; int dp[100005][3]; int main(){ int n; cin>>n; for(int i=1;i<=n;i++) cin>>a[i]>>b[i]>>c[i]; for(int i=1;i<=n;i++){ dp[i][0]=max(dp[i-1][1]+a[i],dp[i-1][2]+a[i]); dp[i][1]=max(dp[i-1][0]+b[i],dp[i-1][2]+b[i]); dp[i][2]=max(dp[i-1][0]+c[i],dp[i-1][1]+c[i]); } cout<<max({dp[i][0]=max(dp[n][0],dp[n][1],dp[n][2]);}) }小青的五一假期
int haed[100000];//所有以i为开头的边的合集中,最后那个边的编号 struct Edge{ int to;//这条边的终点 int w;//这条边的边权 int next;//这条边在遍历的时候的下一条边是什么 }edge[100000]; int cnt=0;//现在一共有多少条边 void add_edge(in u,int v,int w){//加边的起点、终点、边权 cnt++; edge[cnt].to=v; edge[cnt].w=w; edge[cnt].next=head[u]; haed[u]cnt; }列式前向星
#include<bits/stdc++.h> using namespace std; vector<int> adj[1000005]; int vis[1000005]; void dfs(int u){//深度优先遍历 cout <<u<<" "; vis[u]=1; for(int v:adj[u]){ if(vis[v]==1) continue; dfs(v); }深度优先遍历
void bfs(int u){ queue<int> que; que.push(u); vis[u]=1; while(que.size()){ int st=que.front(); que.pop(); cout<<st<<" "; for(int v:adj[st]){ if(vis[v]==1) continue; vis[v]=1; que.push(v); } } }广度优先搜索
#include<bits/stdc++.h> using namespace std; vector<int> adj[2000]; int vis[2000]; int ans=0; int dfs(int u){// if(ans<u) ans=u; vis[u]=1; for(auto &v:adj[u]){ if(vis[v]==1) { continue; } dfs(v); } } int main(){ int n,m;cin>>n>>m; for(int i=1;i<=m;i++){ int u,v;cin<<u<<v; adj[u].push_back(v); } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++) vis[j]=0; ans=0; dfs(i); cout<<ans<<" "; } }图的遍历
void merge(int x,int y){//把x连到y上 int fx=find(x); int fy=find(y); if(fx!=fy) f[fx]=fy; }并查集(合并find)
int find(int x){ if(f[x]!=x){ return find(f[x]); } return f[x]; }并查集(查找自己的根find)
int find(int x){ if(f[x]!=x){ return f[x]=find(f[x]);//记录祖先zxian } return f[x]; }并查集(路径压缩)
#include<bits/stdc++.h> using namespace std; const int N=2e5+5; const int INF=2e9; int dis[N]; int vis[N]; int n; vector<pair<int,int> > adj[N]; void SPFA(int st){ for(int i=1;i<=n;i++){ dis[i]=INF; } queue<int> que; que.push(st); vis[st]=1; dis[st]=0; while(que.size() ){ int u=que.front(); que.pop(); vis[u]=0; for(auto &it:adj[u]){ int v=it.first; int w=it.second; if(dis[v]>dis[u]+w){ dis[v]=dis[u]+w; if(!vis[v]){ que.push(v); vis[v]=1; } } } } } int main(){ int m;cin>>n>>m; int st;cin>>st; for(int i=1;i<=m;i++){ int u,v,w;cin>>u>>v>>w; adj[u].push_back({v,w}); } SPFA(st); for(int i=1;i<=n;i++){ cout<<dis[i]<<" "; } }最短路径
#include<bits/stdc++.h> using namespace std; int f[6000]; void init(int n){ for(int i=1;i<=n;i++) f[i] =i; } int find(int x){ if(f[x]!=x){ return f[x]=find(f[x]); } return f[x]; } void merge(int x,int y){//把x连到y上 int fx=find(x); int fy=find(y); if(fx!=fy) f[fx]=fy; } vector<array<int,3> > vec; int main(){ int n,m;cin>>n>>m; init(n); for(int i=1;i<=m;i++){ int u,v,w;cin>>u>>v>>w; vec.push_back({w,u,v}); } sort(vec.begin(),vec.end()); int ans=0; for(auto &it:vec){ int w=it[0]; int u=it[1]; int v=it[2]; if(find(u)!=find(v)) { merge(u,v); ans+=w; } } }最小生成树
-
通过的题目
-
最近活动
-
最近编写的题解
This person is lazy and didn't write any solutions.
题目标签
- 计算几何
- 3
- 字符串
- 2
- 其他
- 2
- 排序
- 2
- 语言入门
- 2
- 顺序结构
- 2
- 搜索
- 2
- 模拟
- 2
- 中级班期中考
- 2
- dfs
- 1
- bfs
- 1
- 枚举
- 1
- 选择语句
- 1