| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:没过的试一试c++,真是服了 c++就过了 g++就过不了In Reply To:没过的试一试c++,真是服了 c++就过了 g++就过不了 Posted by:nka_kun at 2017-08-24 18:20:36 > #include<cstdio>
> #include<iostream>
> #include<algorithm>
> #include<queue>
> #include<stack>
> #include<cstring>
> #include<string>
> #include<vector>
> #include<cmath>
> #include<map>
> using namespace std;
> typedef long long ll;
> #define mem(a,b) memset(a,b,sizeof(a))
> const int maxn = 1e5+5;
> const int ff = 0x3f3f3f3f;
> int sx,sy,ex,ey;
>
> long long temp[205][2];
> double mp[205][205];
> double dis[205];
> int vis[205];
> int cnt = 2;
>
> void solve()
> {
> for(int i = 1;i<= cnt;i++)
> dis[i] = mp[1][i];
> vis[1] = 0;
> dis[1] = 0;
> int num = 1;
> while(num<= cnt)
> {
> double min_d = 9999999999999;
> int min_v;
> for(int i = 1;i<= cnt;i++)
> {
> if(!vis[i]&&dis[i]< min_d)
> min_d = dis[i],min_v = i;
> }
> vis[min_v] = 1;
> num++;
> if(min_v == 2)
> break;
> for(int i = 1;i<= cnt;i++)
> {
> if(!vis[i]&&min_d+mp[min_v][i]< dis[i])
> {
> dis[i] = min_d+mp[min_v][i];
> }
> }
> }
> double ans = dis[2]*60;
> printf("%.0lf\n",ans);
>
> }
>
> int main()
> {
> mem(vis,0);
> scanf("%I64d %I64d %I64d %I64d",&temp[1][0],&temp[1][1],&temp[2][0],&temp[2][1]);
> int t[202][2];
> ll x,y;
> int l,r;
> int flag = 0;
> while(scanf("%I64d %I64d",&x,&y)!= EOF)
> {
> if(x == -1&&y == -1)
> {
> for(int i = l;i< r;i++)
> {
> for(int j = i+1;j<= r;j++)
> {
> double sum = 0;
> for(int k = i;k< j;k++)
> sum+= sqrt((double)(temp[k][0]-temp[k+1][0])*(double)(temp[k][0]-temp[k+1][0])+(double)(temp[k][1]-temp[k+1][1])*(double)(temp[k][1]-temp[k+1][1]))/(40000*1.0);
> mp[i][j] = sum;
> mp[j][i] = sum;
> }
> }
> flag = 0;
> continue;
> }
> temp[++cnt][0] = x;
> temp[cnt][1] = y;
> if(flag == 0)
> {
> flag = 1;
> l = cnt;
> }
> r = cnt;
> }
> for(int i = 1;i< cnt;i++)
> {
> for(int j = i+1;j<= cnt;j++)
> {
> if(mp[i][j]!= 0)
> {
> mp[i][j] = min(mp[i][j],sqrt((double)(temp[i][0]-temp[j][0])*(double)(temp[i][0]-temp[j][0])+(double)(temp[i][1]-temp[j][1])*(double)(temp[i][1]-temp[j][1]))/(10000*1.0));
> mp[j][i] = mp[i][j];
> continue;
> }
> mp[i][j] = sqrt((double)(temp[i][0]-temp[j][0])*(double)(temp[i][0]-temp[j][0])+(double)(temp[i][1]-temp[j][1])*(double)(temp[i][1]-temp[j][1]))/(10000*1.0);
> mp[j][i] = mp[i][j];
> }
> }
> solve();
>
> return 0;
> }
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator