澳门威利斯人_威利斯人娱乐「手机版」

来自 办公软件 2019-11-16 06:37 的文章
当前位置: 澳门威利斯人 > 办公软件 > 正文

澳门威尼斯人博彩最小环无向图,无标题文章

C 插入排序之二路插入(环与非环的可比)

#include 
using namespace std;
void Grial(int a[],int n)
{
    int i,j;
    i=j=0;
    int b[n];
    b[0]=a[i];
    int k;
    for(k=1;ka[k])
            {
                b[(j-1 n)%n]=a[k];
                j=(j-1 n)%n;
            }
         else
            {
                i  ;
                int m;
                for(m = i;b[m-1]>a[k];m--)
                {
                    b[(m n)%n] = b[(m-1 n)%n];
                }
                b[(m n)%n]=a[k];
            }
    }
    i  ;
    k = 0;
    do
    {
        a[k  ]=b[(i)%n];
        i  ;
    }while(i%n!=j);
}
int main()
{
    int a[]={10,4,2,5,88,1,23};
    Grial(a,7);
    for(int i=0;i<7;i  )
    {
        cout<
using namespace std;
//2路插入排序.
void Grial(int a[],int n)
{
    int  i;
    int j;
    int b[n];//新开辟的空间用来排序.
    b[0]=a[0];
    i=1;
    j=n-1;
    int k;
    for(k=1;k(n-j)?1:-1;//比较左边的长度与右边的长度,如果左边的大,则flag记1,else记-1.
        if(a[k]>b[i-1])
        {
            b[i]=a[k];  
            i  ;
        }
        else if(a[k]b[m 1])
                            b[m]=b[m 1];
                        else
                          {
                            b[m]=a[k];
                            break;
                            }
                    }
                j--;
        }
        else
        {
            int m;
            for(m = i; b[m-1]>a[k] && m>0;m--)
            {   
                    b[m]=b[m-1];
            }
            b[m]=a[k];
            i  ;
        }
    }
    j = i;
    k=0;
    do{
            a[k  ]=b[(i n)%n];
            i  ;
        }while((i%n)!=j);
}
int main()
{
    int a[]={2,4,77,3,1,6,3,10,8,-1};
    Grial(a,10);
    for(int i=0;i<10;i  )
    {
        cout<<<

) #include using namespace std;void Grial(int a[],int n){ int i,j; i=j=0; int b[n]; b[0]=a[i]; int k; for(k=1;k a[k]) { b[(j-1 n...

hdu 1599find the mincost route(Floyd算法,最小环无向图)

#学业代码``` c //3.3  path 路径#include#include#include#include#includeusing namespace std;struct node{int v, a, b, c[2000];}p[50][50];int mmin(int a,int b){if (a > b) return b;else return a;}int fac(int x){  return x*x;  }int main(){int T, o = 0;cin >> T;while (T--){int n, m;cin >> n >> m;memset(p, 0, sizeof(p));for (int i0 = 1;i0 <= n;i0 )for (int j = 1;j <= m;j )cin >> p[i0][j].v;p[1][1].a = fac(p[1][1].v);p[1][1].b = p[1][1].v; p[1][1].c[p[1][1].v] = fac(p[1][1].v); for (int j = 2;j <= m;j ){p[1][j].a = p[1][j - 1].a fac(p[1][j].v);p[1][j].b = p[1][j - 1].b p[1][j].v;p[1][j].c[p[1][j].b] = p[1][j].a;}for (int i1 = 2;i1 <= n;i1 ){p[i1][1].a = p[i1 - 1][1].a fac(p[i1][1].v);p[i1][1].b = p[i1 - 1][1].b p[i1][1].v;p[i1][1].c[p[i1][1].b] = p[i1][1].a;}for (int i = 2;i <= n;i )for (int j = 2;j <= m;j )for (int k = 0;k < 2000;k ) {if (p[i][j - 1].c[k]){int f = k p[i][j].v;if (p[i][j].c[f])                      p[i][j].c[f] = mmin(  p[i][j].c[f], p[i][j - 1].c[k] fac(p[i][j].v)  );elsep[i][j].c[f] = p[i][j - 1].c[k] fac(p[i][j].v);}if (p[i - 1][j].c[k]){int f = k p[i][j].v;if (p[i][j].c[f])p[i][j].c[f] = mmin(p[i][j].c[f], p[i - 1][j].c[k] fac(p[i][j].v));                        elsep[i][j].c[f] = p[i - 1][j].c[k] fac(p[i][j].v);}}int ans = 1000000000;for (int i2 = 0;i2 < 2000;i2 )if (p[n][m].c[i2])ans = mmin(ans, (n m - 1)*p[n][m].c[i2] - fac(i2));printf("Case #%d: %dn", o, ans);}return 0;}`````` c //4.4 szjl 数字接力#include#include#includeusing namespace std;  char a[1005][32];  char p[1005][32];    int n = 0;  //本人写三个字符串比较函数  int strcmp_vv(char s[], char t[])  {      char r[200];      char r1[200];      strcpy(r, s);      strcat(r, t);      strcpy(r1, t);      strcat(r1, s);      int i = strcmp(r, r1);      return i;  }    void outv()  {        for (int i = 0;i < n;i )            printf("%s",a[i]);                printf("n");  }    //将有三个有序数列a[first...mid]和a[mid...last]合并。    void mergearray(char a[][32], int first, int mid, int last,char temp[][32])  {        int i = first, j = mid 1;      int m = mid, n = last;      int k = 0;      while (i <= m && j <= n)      {        if (strcmp_vv(a[i], a[j])==1)                strcpy(temp[k ], a[i ]);            else                strcpy(temp[k ], a[j ]);      }      while (i <= m)          strcpy(temp[k ] , a[i ]);      while (j <= n)          strcpy(temp[k ] , a[j ]);      for (i = 0; i < k; i )          strcpy(a[first i] , temp[i]); cout<<" first "<> n;

find the mincost route

Time Limit: 1000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2995 Accepted Submission(s): 1204

Problem Description 拉脱维亚里加有N个景区,景区之间有风度翩翩部分双向的路来一而再再而三,今后8600想找一条旅游路径,那些门路从A点出发而且最后回来A点,倘使经过的门路为V1,V2,....VK,V1,那么必得满意K>2,正是说至除了视角以外起码要透过2个别的分歧的景区,而且不可能重复经过同贰个景区。今后8600供给你帮他找一条那样的路径,而且开销越少越好。

Input 第大器晚成行是2个整数N和M(N <= 100, M <= 1000),代表景区的个数和征途的条数。
接下去的M行里,每行包蕴3个整数a,b,c.代表a和b之间有一条通路,并且供给开销c元(c <= 100)。
Output 对于各个测量检验实例,如若能找到这样一条路子的话,输出耗费的蝇头值。假若找不到的话,输出"It's impossible.".
Sample Input

3 3
1 2 1
2 3 1
1 3 1
3 3
1 2 1
1 2 3
2 3 1

Sample Output

3
It's impossible.

Author 8600
Source HDU 2007-Spring Programming Contest - Warm Up (1)
标题供给形成一个环,所以对Floyd算法有部分改良。能够参见这里的演说:
#include
#include
int n,m,mat[105][105],dis[105][105];
int main()
{
int a,b,c,i,j,k;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(i=0;i<105;i )
for(j=0;j<105;j )
{mat[i][j]=99999999;
dis[i][j]=99999999;
}
for(int i=0;i
{
scanf("%d%d%d",&a,&b,&c);
if(mat[a][b]>c)
mat[a][b]=mat[b][a]=dis[b][a]=dis[a][b]=c;
}
int i,k,j,temp=99999999;
for(k=1;k<=n;k )
{
for(i=1;i
for(j=1;j*
{

if(temp>dis[i][j] mat[i][k] mat[k][j])
temp=dis[i][j] mat[i][k] mat[k][j]; //也正是在第k次时候,找到了二个最短路径的环。
}
for(i=1;i<=n;i )
for(j=1;j<=n;j )
if(dis[i][j]>dis[i][k] dis[k][j]) //对最短路进行更新
dis[i][j]=dis[i][k] dis[k][j];
}
if(temp<99999999)
printf("%dn",temp);
else printf("It's impossible.n");
}
return 0;
}*

1599find the mincost route(Floyd算法,最小环无向图) find the mincost route 提姆e Limit: 1000/二〇〇四 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi...

for (int i = 0;i < n;i )    cin >> a[i];

MergeSort(a,n);

本文由澳门威利斯人发布于办公软件,转载请注明出处:澳门威尼斯人博彩最小环无向图,无标题文章

关键词: 澳门威利斯人 随笔