-
个人简介
史上最难题:a+b problem 题解
算法:dijkstra
#include<bits/stdc++.h> using namespace std; const int maxn=1e5+100; struct node{ int y,z; //y 是这条边的终 //z 是权值 }; long long dis[maxn],n,m; int vis[maxn]={false}; vector<node> G[maxn]; int cnt=0; long long ans=0; void dij(){ for(int i=1;i<=n;i++){ dis[i]=LLONG_MAX; } dis[1]=0; set<pair<long long,int> > st; st.insert(make_pair(dis[1],1)); while(not st.empty()){ int u=st.begin()->second; st.erase(st.begin()); if(vis[u]==1) continue; vis[u]=1; cnt++; ans=max(ans,dis[u]); //https://114.514.191.810 for(int i=0;i<G[u].size();i++){ int v=G[u][i].y; int w=G[u][i].z; if(dis[v]>dis[u]+w){ st.erase(make_pair(dis[v],v)); dis[v]=dis[u]+w; st.insert(make_pair(dis[v],v)); } } } } int main(){ n=3; int a,b; cin>>a>>b; G[1].push_back({2,a}); G[2].push_back({3,b}); dij(); cout<<dis[3]; }
贪吃蛇
`
#include #include #include using namespace std; char getch() { termios o,n; tcgetattr(0,&o); n=o; n.c_lflag&=~(ICANON|ECHO);tcsetattr(0,TCSANOW,&n); char c=getchar(); tcsetattr(0,TCSANOW,&o); return c;} int main() {int W=20,H=10,dx=0,dy=1,s=0,x=H/2,y=W/2,fx=rand()%H,fy=rand()%W;deque q={x|(y<<16)};while(1){system("clear");for(int i=0;i>16)==j;putchar(i==fx&&j==fy?'*':b?'O':'.');}printf("Score:%d\n",s);usleep(120000);if (read(0,&dx,0)>=0) {char c=getch();if(c=='w')dx=-1,dy=0; if(c=='s')dx=1,dy=0;if(c=='a')dx=0,dy=-1; if(c=='d')dx=0,dy=1;}x=(q.front()&0xFFFF)+dx; y=(q.front()>>16)+dy;x=(x+H)%H; y=(y+W)%W;for(auto&p:q) if((p&0xFFFF)==x&&(p>>16)==y) return 0;q.push_front(x|(y<<16));if(x==fx&&y==fy){s++;fx=rand()%H;fy=rand()%W;}else q.pop_back();}}
-
通过的题目
-
最近活动
题目标签
- 入门
- 10
- 基本运算
- 6
- 算法基础
- 5
- 数学
- 5
- 模拟算法
- 5
- 思维
- 3
- 普及-
- 2
- 语法基础
- 2
- 枚举
- 2
- 二分查找
- 1
- 进阶
- 1
- noip复赛
- 1
- 函数
- 1
- 基础
- 1
- 条件判读
- 1
- 进制
- 1
- map
- 1
- 简单题
- 1
- 普及
- 1
- 动态规划
- 1