zoj部分题目代码(仅代码)

ZOJ 题目分类以及部分题目简单思路 初学者题: 1001 1037 1048 1049 1051 1067 1115 1151 1201 1205 1216 1240 1241 1242 1251 1292 1331 1334 1337 1338 1350 1365 1382 1383 1394 1402 1405 1414 1494 1514 1622 1715 1730 1755 1760 1763 1796 1813 1879 阅读详情

ZJU1002(Fire Net)

#include < stdio.h>

    char map[4][4];

    int best,n;

    int CanPut(int row, int col)

    {

       int i;

       for (i = row - 1; i >= 0; i--)

       {

         if (map[i][col] == 'O') return 0;

         if (map[i][col] == 'X') break;

       }

       for (i = col - 1; i >= 0; i--)

       {

         if (map[row][i] == 'O') return 0;

         if (map[row][i] == 'X') break;

       }

       return 1;

    }

    void solve(int k,int tot)

    {

       int x,y;

       if(k==n*n)

       {

         if(tot>best) {

       best=tot;   return;

    }

       }

       else

       {

         x=k/n;

         y=k%n;

         if((map[x][y]=='.') && (CanPut(x,y) ) )

         {

           map[x][y]='O';

           solve(k+1,tot+1);

           map[x][y]='.';

         }

         solve(k+1,tot);

       }

    }

    int main()

    {

       int i,j;

       scanf("%d",&n);

       while(n>0)

       {

         for(i=0;i< n;i++)

            for(j=0;j< n;j++)

                scanf("%1s",&map[i][j]); /*输入单个字符并且忽略空白*/

         best=0;

         solve(0,0);

         printf("%d\n",best);

         n=0;                               /*预防scanf失败,reset n*/

         scanf("%d",&n);

       }

       return 0;

ZJU1003(Crashing Balloon)

////运用了深度优先 的搜索策略

    #include < stdio.h>

    int flagA,flagB;

    int result ;

    void dfs(int m,int n,int kk)

    {

    int k =kk;

    if(m==1 && n==1)

    {

       flagA=1;

       return ;

    }

    if(n==1) flagB =1;

    while( (k <  m || k <  n) && (k< 100) )

    {

       k++;

       if(m%k ==0)

       {

        dfs(m/k,n,k);

        if(flagA)

         return ;

       }

       if(n%k ==0 )

       {

        dfs(m,n/k,k);

        if(flagA)

         return ;

       }

    }

    }

    int main()

    {

    int A,B,t;

    while(scanf("%d%d",&A,&B)!=EOF )

    {

       if(A <  B )

       {

         t=A;

            A=B;

            B=t;

       }

          flagA =0;

          flagB =0;

          dfs(A,B,1);

          result =A;

          if(flagA ==0 && flagB ==1)

           result =B;

          printf("%d\n",result);

    }

    return 0;

    }

ZJU1004(Anagrams by Stack)

#include < iostream>

    #include < string>

    #include < stack>

    using namespace std;

    string str1,str2;

    stack< char> stk1,stk2;

    char str[200];

    void Search(int x)

    {

    int i,j,k;

    k=0;

    for(i=0;i<2*str1.length();i++)

        str[i] ='i';

    for(i=0;i<=x;i++)

        stk1.push(str1[i]);

    for(i=str2.length()-1;i>=0;i--)

        stk2.push(str2[i]);

    i=0;

    while(!stk2.empty() &&!stk1.empty() )

    {

        if(stk1.top() == stk2.top() )

        {

         stk2.pop();

         stk1.pop();

         str[i++]='o';

        }

        else

         for(j=x;j< str1.length();j++)

         {

          stk1.push(str1[j]);

          if( stk1.top() == stk2.top() )

          {

           stk2.pop();

           stk1.pop();

           str[i++] ='o';

           break;

          }

         }

    }

    if(stk2.size()==0)  ///////////stk2.empty() )

    {

        for(i=0;i<2*str2.length();i++)

         printf("%c ",str[i]) ;

    }

    }

    int main()

    {

    while(cin>>str1>>str2)

    {

        if(str1.length() !=str2.length() )

        {

         printf("%c\n",'[');

         printf("%c\n",']');

         continue;

        }

        printf("%c\n",'[');

        for(int i=str1.length()-1;i>=0;i--)

         Search(i);

        printf("%c\n",']');

    }

    return 0;

    }

ZJU1005(Jugs)

/////此题要求把一定量的(水) 经由A装到B里
     ///1。先倒进3升桶3升水;
     // 2。将这3升水倒入5升的桶;
     //   3。再倒进3升桶3升水;
     ///   4。再将这3升水倒入已装有3升水的5升桶里,倒满即可。这时,3升桶里还有1升的水;
     //   5。倒掉5升桶的水,将3升桶里的1升水倒入5升桶里;
     //   6。再倒时3升桶3升水,将这3升水倒入5升桶里,此时5升桶里装的就是3+1=4升水了。
    #include < stdio.h>
    int main()
    {
         int ca,cb,n,x,y;
         while( scanf("%d %d %d",&ca,&cb,&n)!=EOF)
         {
           x=y=0;
           while(1)
           {
             printf("fill A\n");
             x=ca;
             if(x==n)
          {
           printf("success\n");
           break;
          }
         while(x>0)
         {
           if((cb-y)>=x)
           {
            printf("pour A B\n");
            y=y+x;
            x=0;
           }
           else
           {
            printf("pour A B\n");
            x=x-(cb-y);
            y=cb;
          }
          if(x==n)
          {
           printf("success\n");
           break;
          }
          if(y==n) break;
          if(y==cb)
          {
          printf("empty B\n");
          y=0;
          }
         }
          if(x==n) break;
          if(y==n)
          {
           printf("success\n");
           break;
          }
         }
        }
    return 0;
    }

ZJU1006(Do the Untwist)

#include < stdio.h>

    #include < string.h>

    int main()

    {

    int Key;

    char str[70];

    int plaincode[70];

    int ciphercode[70];

    while(scanf("%d",&Key) )

    {

       if(Key==0)

        break;

       scanf("%s",str);

       int len=strlen(str);

          int i=0;

       char temp;

       while (i< len)

       {

        temp=str[i];

        if(temp=='_')

        {

         ciphercode[i]=0;

        }

        else if(temp=='.')

         ciphercode[i]=27;

        else

         ciphercode[i]=(int)(temp-'a')+1;

        i++;

       }

       i=0;

       int mod;

       while(i< len)

       {

        mod=(Key*i)%len;

           plaincode[mod]=(ciphercode[i]+i)%28;

        i++;

       }

       for(i=0;i< len;i++)

       {

           if(plaincode[i]==27)

            printf("%c",'.');

              else if(plaincode[i]==0)

         printf("%c",'_');

        else

         printf("%c",(char)(plaincode[i]-1+'a') );

       }

       printf("\n");

    }

    return 0;

    }

ZJU1007(Numerical Summation of a Series)

#include< stdio.h>

    int main()

    {

            double sum,a,k;

            for(a=0.000;a<=2.000;a=a+0.001)

            {

              sum=0;

              for(k=1;k< 10000;k++)

              {

                 sum=sum+(1-a)/(k*(k+1)*(k+a));   ///f(x)-f(1)=...=sum((1-x)/(k*(k+1)*(k+x)))

              }

                 sum=sum+(1-a)/(2*10000*10000)+1.0; ///////因为 y(1)=1.0 因此加1

                 printf("%5.3f %16.12f\n", a, sum );

            }

            return 0;

    }

    /////附带其他解法

    /*#include < iostream>

    using namespace std;

    int main()

    {

       double x=0.000,s=0.0,s1=0.0,i,j;

       for(i=1400000;i>10000;i--)

         s1+=1.0/(i*i*(i+1));

         for(i=0;i<2001;i++)

         {

           s=s1;

           for(j=10000;j>=1;j--)

           s+=1.0/((j*(j+1))*(j+x));

           s*=(1-x);

           printf("%5.3f %16.12f\n",x,1+s);

           x+=0.001;

         }

       return 0;

    }

    #include< stdio.h>

    int main()

    {

            double sum,a,k;

            for(a=0.000;a<=2.000;a=a+0.001)

            {

             sum=0;

             for(k=1;k<10000;k++)

             {

               sum=sum+(1-a)/(k*(k+1)*(k+a));   ///f(x)-f(1)=...=sum((1-x)/(k*(k+1)*(k+x)))

             }

               sum=sum+(1-a)/(2*10000*10000)+1.0; ///////因为 y(1)=1.0 因此加1

               printf("%5.3f %16.12f\n", a, sum );

            }

            return 0;

    }

    #include   < cstdio>

    int   main()

    {

         double sum, x;

         int n, k;

         for (n=0; n<=2000; n++)

         {

             x=n/1000.0;

             sum=0.0;

             for (k=1; k<=10000; k++) sum+=1.0/(k*(k+1.0)*(k+2.0)*(k+x));

             double result=(x-1)*0.75+(2-x)*1.0+(x-1)*(x-2)*sum;

             printf("%.3f    %.12f\n", x, result);

         }

         return 0;

    }

    */

ZJU1008(Gnome Tetravex)

#include < stdio.h>

int map[26][5];

int a[6][6];

bool flag,flag1;

bool llink[26][26],rlink[26][26],tlink[26][26],blink[26][26];

int i,j,m,n,t,all;

int a1,a2,a3,a4;

int nm[26];

float starting;

void dfs(int x,int y)

{

  int ii;

  if (y==n+1)

  {

      printf("Possible\n");

      flag=true;

  }

  else

  for (ii=1;ii<=all;ii++)

  {

      if (x<=1 || llink[ii][a[x-1][y]])

         if (y<=1 || tlink[ii][a[x][y-1]])

           if (nm[ii]>0)

           {

                a[x][y]=ii;

               nm[ii]--;

               if (x==n) dfs(1,y+1);else dfs(x+1,y);

               nm[ii]++;

               if (flag) break;

           }

}

}

int main()

{

  t=0;

  while ((scanf("%d",&n))!=EOF)

  {

      if (n==0) return 0;

      for (i=1;i<=26;i++) nm[i]=0;

      all=0;

      for (i=1;i<=n*n;i++)

      {

          scanf("%d %d %d %d",&a1,&a2,&a3,&a4);

          flag1=false;

          for (j=1;j<=all;j++)

          if (a1==map[j][1] && a2==map[j][2] && a3==map[j][3] && a4==map[j][4])

               {

                   flag1=true;

                   nm[j]++;

               }

           if (!flag1) {

               all++;map[all][1]=a1;map[all][2]=a2;map[all][3]=a3;map[all][4]=a4;

               nm[all]=1;

           }

       }

      for (i=1;i<=all;i++)

      for (j=1;j<=all;j++)

      {

            if (map[i][1]==map[j][3]) tlink[i][j]=true; else tlink[i][j]=false;

            if (map[i][2]==map[j][4]) rlink[i][j]=true; else rlink[i][j]=false;

            if (map[i][3]==map[j][1]) blink[i][j]=true; else blink[i][j]=false;

            if (map[i][4]==map[j][2]) llink[i][j]=true; else llink[i][j]=false;

      }

      for (i=1;i<=n;i++)

      for (j=1;j<=n;j++)

      flag=false;

      t++;

      if (t>1) printf("\n");

      printf("Game %d: ",t);

      dfs (1,1);

      if (!flag) printf("Impossible\n");

  }

}


 

ZJU1009(Enigma)

#include< stdio.h>

#define Maxm 26

#define Rotor 3

using namespace std;

class enigma

{

    public:

           enigma();

           int add(int,int);

           void initialize();

           void compute();

           void print();

           int n,cases;

    private:

            int num,rotors[Rotor+1][Maxm+1];

};

enigma::enigma()

{

              num=0;

}

void enigma::print()

{

   ++num;

   if (num>1)

      printf("\\n");

   printf("Enigma %d:\\n",num);

}

int enigma::add(int x,int y)

{

  if (x+y>n)

     return (x+y)%n;

  else if (x+y<1)

     return (x+y+((-x-y)/n+1)*n);

  else

     return x+y;

}

void enigma::initialize()

{

   int i,j,x;

   for (i=1;i<=Rotor;++i)

   {

       for (j=1;j<=n;++j)

       {

           x=getchar();

           rotors[i][j]=x-(\'A\'+j-1);

       }

       getchar();

   }

}

void enigma::compute()

{

   int i,time=0,x,adr,ans;

   x=getchar();

   while (x!=\'\\n\')

   {

         x=x-\'A\'+1;

         for (i=1;i<=n;++i)

         {

             adr=add(i,-time);

             ans=add(i,rotors[1][adr]);

             adr=add(ans,-time/n);

             ans=add(ans,rotors[2][adr]);

             adr=add(ans,-time/n/n);

             ans=add(ans,rotors[3][adr]);

             if (ans==x)

                break;

         }

         putchar(i+\'a\'-1);

         x=getchar();

         ++time;

   }

   printf("\\n");

}

main()

{

    enigma x;

    int i;

    scanf("%d",&x.n);

    getchar();

    while (x.n!=0)

    {

          x.initialize();

          scanf("%d",&x.cases);

          getchar();

          x.print();

          for (i=1;i<=x.cases;++i)

             x.compute();

          scanf("%d",&x.n);

          getchar();

    }

    return 0;

}


 

ZJU1010(Area)

 

 运用向量的 叉积 判断是否相交 !!然后计算简单多边形的面积

    但是下面的程序是 WRONG 的,不明白……

    #include < stdio.h>

    #include < math.h>

    struct Polygon

    {

             double x ;

             double y ;

    }Poly[1001];

    int num ;

    bool check()

    {

             int i ;

             Polygon p1q1 ;      // p1- q1 ;

             Polygon q2q1 ;

             Polygon p2q1 ;

             for( i = 0 ;i< num   ; i++ )

             {

                  p1q1.x = Poly[i].x - Poly[(i+2)%num].x ;

                  p1q1.y = Poly[i].y - Poly[(i+2)%num].y ;

                  q2q1.x = Poly[(i+3)%num].x - Poly[(i+2)%num].x ;

                  q2q1.y = Poly[(i+3)%num].y - Poly[(i+2)%num].y ;

                  p2q1.x = Poly[(i+1)%num].x - Poly[(i+2)%num].x ;

                  p2q1.y = Poly[(i+1)%num].y - Poly[(i+2)%num].y ;

                  if( (p1q1.x * q2q1.y - p1q1.y * q2q1.x)* (q2q1.x * p2q1.y -

    q2q1.y * p2q1.x ) > 0 )

                             return false ;

             }

             return true ;

    }

    double Polygon_Area()

    {

           int i;

           double s = 0.0 ;

           for( i = 1 ;i <= num ;i++)

             s += Poly[(i-1)].x * Poly[i%num].y - Poly[i%num].x *

    Poly[(i-1)].y ;

          // s=Poly[0].y*(Poly[num-1].x-Poly[1].x) ;

        //    for( i = 1 ; i < num ; i ++)

        //    {

         //       s += Poly[i].y * (Poly[(i-1)].x - Poly[(i+1)%num].x);

        //    }

              return s / 2.0   ;

    }

    int main(int argc, char* argv[])

    {

             int i ;

             int now = 0 ;

             while(scanf("%d",&num )!=EOF )

             {

                     if( num == 0 )

                             break;

                     now ++ ;

                     for( i = 0 ; i < num ; i ++)

                             scanf("%lf %lf" ,&Poly[i].x ,&Poly[i].y ) ;

         if( num < 3 )

         {

          printf("Figure %d: Impossible\n",now ) ;

          continue;

         }

                     if( !check() )

                     {

                             printf("Figure %d: Impossible\n",now ) ;

                             continue ;

                     }

                     double area = Polygon_Area() ;

        // if(area < 0 )

        //   area = -area ;

                     printf("Figure %d: %.2lf\n", now , fabs(area) ) ;

             }

             return 0;

    }


 

ZJU1016(Parencodings)

#include

    int main()

    {

    int cases;

    scanf("%d",&cases);

    int num;

    int now=1,i,j;

    int inta[21],intb[21];

    char str[100];

    int b[100]={0};    ///biaoji

    int Index;

    while(now<=cases)

    {

       for(i=0;i<100;i++)

        b[i]=0;

       for(i=0;i<21;i++)

        intb[i]=0;

       scanf("%d",&num);

       for(i=0;i=0;j--)

         {

                     if(str[j]=='('&&b[j]==1)

                        sum++;

                     if(str[j]=='('&&b[j]==0)

         {

                         sum++;

                intb[bIndex]=sum;

          bIndex++;

                         b[j]=1;

                         break;

         }

         }

          }

       }

          for(i=0;i< bIndex-1;i++)

           printf("%d ",intb[i]);

          printf("%d\n",intb[bIndex-1] );

       now++;

    }

    return 0;

    }


 

ZJU1025(Wooden Sticks)

#include

    struct Stick

    {

    int length;

    int weight;

    bool   flag;

    };

    bool compare( const Stick& a, const Stick& b);

    void QuickSort(Stick a[],int low,int high)

    {

    int i=low,j=high;

    Stick   temp=a[low];

    while (i < j)

    {

       while (i < j && (temp.lengtha[i].length || (temp.length==a[i].length &&

    temp.weight >= a[i].weight)))       i++;

       if(i < j )

       {

         a[j]=a[i];

            j--;

       }

    }

    a[i]=temp;

    if(lowi)

       QuickSort(a,i+1,high);

    }

    int main()

    {

    int Tgroups;

    scanf("%d", &Tgroups);

    Stick wooden[5000];

         int k=0;

    while (k < Tgroups)

    {

       int testNum;

       scanf("%d", &testNum);

       int i;

       for(   i = 0; i != testNum; ++i)

       {

        scanf("%d%d", &wooden[i].length, &wooden[i].weight);

        wooden[i].flag = true;

       }

          QuickSort(wooden,0,testNum-1);

       int minutes = 0;

       for(   i = 0; i != testNum; ++i)

        if (wooden[i].flag)

        {

         Stick temp = wooden[i];

         for( int j = i + 1; j != testNum; ++j)

          if (wooden[j].flag)

           if ( compare( temp, wooden[j]) )

           {

            temp = wooden[j];

            wooden[j].flag = false;

           }

         ++minutes;

        }

       printf("%d\n", minutes);

       k++;

    }

    return 0;

    }

    bool compare( const Stick& a, const Stick& b)

    {

    if (a.length <= b.length && a.weight <= b.weight)

       return true;

    else

       return false;

    }


 

ZJU1027(Human Gene Functions)

用状态变量d[i,j]表示第一个串中长度为i和第二个串中长度为j的gene的最优解

    然后建立状态转移方程

    d[i,j]=max{d[i-1,j-1]+value[str1[ i

    ],str2[j]],d[i,j-1]+value[space,str2[j]],d[i-1,j]+value[str1[ i ],space]}

    #include

    #include

    using namespace std ;

    int score[130][130] ;

    int d[101][101] ;

    struct seq

    {

    int n ;

    string gene ;

    } G[2];

    void init()

    {

    memset(score ,0 ,sizeof(score) ) ;

    score['A']['A'] = score['C']['C'] = 5;

    score['G']['G'] = score['T']['T'] = 5;

    score['A']['C'] = score['C']['A'] = -1 ;

    score['A']['G'] = score['G']['A'] = -2 ;

    score['A']['T'] = score['T']['A'] = -1 ;

    score['A']['-'] = score['-']['A'] = -3 ;

    score['C']['G'] = score['G']['C'] = -3 ;

    score['C']['T'] = score['T']['C'] = -2 ;

    score['C']['-'] = score['-']['C'] = -4 ;

    score['G']['T'] = score['T']['G'] = -2 ;

    score['G']['-'] = score['-']['G'] = -2 ;

    score['T']['-'] = score['-']['T'] = -1 ;

    }

    int max(int a , int b)

    {

    if(a>=b)

         return a ;

    else

         return b ;

    }

    int Max(int a, int b ,int c)

    {

    return max(max(a,b),c ) ;

    }

    int main()

    {

    int cases ;

    int i , j ;

    scanf("%d",&cases ) ;

    init();

    while(cases -- )

    {

         for( i = 0 ; i < 2 ;i++)

         {

           cin>>G[i].n >>G[i].gene ;

         }

         memset(d , 0 , sizeof(d) ) ;

         for( i = 1 ;i <= G[0].n ;i++)

          d[i][0] =     score[G[0].gene[i-1]]['-'] + d[i-1][0] ;

         for( i = 1 ; i <= G[1].n ; i++ )

          d[0][i] = score[G[1].gene[i-1]]['-'] + d[0][i-1] ;

         for( i = 1 ;i<= G[0].n;i++)

          for( j = 1 ;j<= G[1].n ; j++)

          {

           int a = d[i-1][j-1] + score[G[0].gene[i-1]][G[1].gene[j-1]] ;

           int b = d[i-1][j] + score['-'][G[0].gene[i-1]] ;

           int c = d[i][j-1] + score[G[1].gene[j-1]]['-'] ;

           d[i][j] = Max(a,b,c) ;

          }

          printf("%d\n",d[G[0].n][G[1].n] ) ;

    }

    return 0;

    }


 

 



ZOJ题目答案源码 立即下载

相关推荐

zoj代码集合

ACM爱好者的可以参考一下

HZOJ 题

首先对于n<=100的点,直接暴力dp,f[i][j][k]表示时间为i,在i,j位置的方案数,枚举转移即可,期望得分40。 1 if(n<=100) 2 { 3 if(t==0) 4 { 5 f[0][100][100]=1; 6 for(int i=1;i...

weixin_30323631的博客 605

Qi标准无线充学习笔记

负载调制主要通过接收端向后散射调制计数使得功率信号改变,两者通过线圈的电压和电流的变化量来传输信号。下面是要求稳定电流的变化量不得超出8ma,判断稳定的时间至少要在150us稳定电压的变化量不得超出110mv,判断稳定的时间至少要在150us高低电流变化量至少需要15mA,判断稳定的时间至少要在100us,主线圈电流采样的时间是在半桥转换的1/4周期刻测量的高低电压变化量至少需要200mV,判断稳定的时间至少要在100us。

m0_73991989的博客 1011

爬虫爬取ZOJ题目

是

Yaynnbio的博客 917

手把手教你用EGM96模型校正DEM数据(含在线工具推荐)

本文详细介绍了如何使用EGM96地球重力场模型校正DEM数据中的高程偏差。通过对比WGS84椭球面与大地水准面的差异,解释了校正原理,并提供了从在线工具快速验证到Python脚本批量处理的全流程实战指南,帮助GIS开发者和数据分析师确保高程数据基准一致,提升空间分析精度。

ttt77的博客 1008

【C++PTA】6-1 Point类的运算 (10 分)

定义Point类,有坐标x,y两个私有成员变量;对Point类重载“+”(相加)、“-”(相减)和“==”(相等)运算符,实现对坐标的改变,要求用友元函数和成员函数两种方法实现。对Point类重载<<运算符,以使得代码 Point p; cout<<p<<endl;可以输出该点对象的坐标。 函数接口定义: 实现Point类。 裁判测试程序样例: /* 请在这里填写答案 */ int main(int argc, char const *argv[]) { P

libertye的博客 2369

ZOJ Monthly, August 2012部分题目总结

zoj 3637 这题并不难,但好像大家都没看出来,我们也没看来。。 给一些区间,每个区间都有权重,选择一些不重复区间,求最大权重。 首先会想到朴素的dp,dp[i]表示时间为i时的最大收益 dp[i] = max(dp[i-1],max(dp[course[j].begin_time] + weight[j])); 然后我们会发现只有当i是一门课的终止时间的时候,才可能发生第二种转移。

JWZH_CS的专栏 2万+

联邦学习中的差分隐私保护详解及python实现

随着数据隐私法规(如 GDPR、CCPA)日益严格,传统将数据集中到云端训练模型的方式面临合规与安全风险。联邦学习通过让各客户端保留本地数据,仅共享模型更新,缓解了数据流动带来的隐私风险。但模型更新仍可能泄露个体信息。为进一步保障隐私,可在本地更新中引入差分隐私(DP)机制,通过向梯度或模型更新中注入随机噪声,防止反向推断原始数据citeturn0search9。

闲人编程的博客 1923

ZOJ Monthly, July 2010 部分题目解题报告

http://acm.zju.edu.cn/onlinejudge/showProblems.do?contestId=1&pageNumber=24 zoj 3352 - 3361 zoj 3352 Boring Board Game 题意:50个点有向无环图,每个点有0-2的数字,有黑白两旗,两个人玩游戏,轮流沿着边移动一个旗子,白旗使得赌注增加抵达点的数字,黑旗反之。...

weixin_30745641的博客 125

Ego Planner规划算法(下)——Ego Planner程序框架

本系列文章用于学习记录Ego-Planner规划算法的相关内容,本系列文章是在在Fast Planner规划算法系列文章的基础上,展开对Ego Planner的相关介绍,主要包括Ego Planner算法流程和程序框架两部分,主要学习资料是深蓝学院的移动机器人运动规划课程

慕羽★的博客 7261

OSG 核心详解

OpenSceneGraph (OSG) 的核心架构、场景图管理以及几何体的绘制

qq_45859163的博客 729

ACM各题型OJ题目总结 POJ、ZOJ、HDU

本帖题目类型: 目录 1、递归与分治(27) 2、动态规划类问题(189题) 3、贪心算法类问题(79) 4、回溯算法(36) 5、图的搜索(98) 6、图论(85) 7、数论(117) 8、组合数学(99) 9:、分支限界算法(14) 推荐网站:https://vjudge.net/ 下面给出各题型的部分例题。 注:1.题目来源于ZOJ,POJ和HUD; ...

一定要站在自己热爱的生活里闪闪发光 4万+

ARM与PC共享文件方式【samba】移植与配置

方式推荐指数适用平台优点缺点⭐⭐⭐⭐⭐全平台 (Win/Mac/Linux)兼容性最强,操作像本地文件配置稍繁琐,协议开销略大NFS⭐⭐⭐⭐Linux/Mac (Win支持一般)速度极快,CPU占用低Windows配置复杂,权限管理较难SFTP (SSH)⭐⭐⭐⭐全平台 (需客户端)安全加密,无需额外配置服务需使用FileZilla/Xftp等专用软件物理U盘⭐⭐⭐全平台无需网络,速度取决于接口需要人工插拔,不适合自动化Syncthing⭐⭐⭐⭐全平台自动同步,支持远程。

浩瀚之水的专栏 263

zoj题目分类

饮水思源---zoj 转载自:http://bbs.sjtu.edu.cn/bbscon,board,ACMICPC,file,M.1084159773.A.html 注:所有不是太难的题都被归成了“简单题”,等到发现的时候已经太晚了,我太死脑筋 了……:( 有些题的程序我找不到了,555……:( SRbGa的题虽然都很经典……但是由于其中的大部分都是我...

446

一文吃透!C#上位机CAN总线通信开发:从协议解析到数据可视化

CAN底层协议仅定义了8字节数据的传输规则,实际业务需自定义应用层协议,实现多类型数据的有序传输,这是数据解析的核心。仲裁ID(16进制)数据长度(DLC)数据场格式业务含义解析规则0x0014字节0~3:温度数据温度采集(单位:℃)4字节→float类型(大端/小端需统一,如西门子PLC格式)0x0022字节0~1:转速数据电机转速(单位:r/min)2字节→short类型(Int16)0x0031字节0:bit0~bit7设备状态(8路开关量)

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 847

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

ZOJ Monthly, September 2012部分题目总结

zoj 3644 有一只喵身上有个记分牌,她每沿着边走一步,记分牌上的数字就会变为,其中表示这一步的终点的一个给定值。问从起点S走到终点T,最后记分牌上写着k的方案有多少种。 dp状态显然和节点号与此时的分值有关,而且分值是k的因子。 dp[i][j]表示到到第i个节点,且变化后分值为k的第j个因子的路数。大分值只会来源于比它小的分值。所以最外层枚举j,里面枚举边就可以更新了。 dp[i]

JWZH_CS的专栏 1万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

浙江省第6届程序设计竞赛结题报告汇总 zoj3202-3212

zoj 3202 Second-price Auction 水题,不解释了,直接贴代码 #include #include #include #include using namespace std; struct node{ int x; int y; }; struct node number[105]; int cmp(struct node a,struct node b){

cnh294141800的专栏 1039

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

ZOJ-1007

ZOJ-1007-Numerical Summation of a Series 解释一下数学部分.... #include int main() { double sum,a,k; for(a=0.000;a<=2.000;a=a+0.001) { sum=0; for(k=1;k< 10000;k++) { sum=sum+(1-a)/(

已废弃 874

ZOJ Monthly, May 2008 部分题目解题报告

Source: ZOJ 2956 - 2964 http://acm.zju.edu.cn/onlinejudge/showProblems.do?contestId=1&pageNumber=20 ZOJ 2956 Another Horizontally Visible Segments 题意:给一些平行y轴的线段,端点都是integer。平行x轴地切一刀,问最多能切多...

weixin_30847271的博客 176

ZOJ题目分类

搜索: 1002     Fire Net              简单题,CEOI2002的Guard的缩小版,搜索就可以 1003     Crashing Balloon      简单题,很faint的题目,想了半天,最后发现最简单的搜索就能过 1004     Anagrams by Stack     简单题,同样faint 1320     DEL Command

稻草人 694

ZOJ Monthly, June 2014部分题解

感觉挺不错的一套题,写下部分题目的题解 ZOJ 3789: Gears 题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3789 题意:有N个齿轮,齿轮间只有旋转方向相反才能连接,给出四个操作 L X Y :将齿轮X, Y连接,如果它们已经有已属集合,那集合也要合并 D X:拆掉齿轮X,且X所...

Tongqi 847

zoj 1338

/* zoj_1338 模拟 看了N就才看到题意。。 就是说有一串数字是由升序和降序组成,要我们找所有升序的平均数和所有降序的平均数。 看懂题目的话就知道是很水的一道题,代码写的很恶心,懒的改了。 */ #include #include using namespace std; int num[1010]; int main() { int i,len; bool u

I am coming! 682

zoj分类

ZOJ题目分类 初学者题: 1001 1037 1048 1049 1051 1067 1115 1151 1201 1205 1216 1240 1241 1242 1251 1292 1331 1334 1337 1338 1350 1365 1382 1383 1394 1402 1405 1414 1494 1514 1622 1715 1730 1755 1760 1763 1796

Rem_little_fan_boy的博客 2679

zoj 3874 Permutation Graph

CDQ+NTT

我要吃熊猫 686
上一篇: ZOJ 题目分类以及部分题目简单思路
KFish
博客等级 码龄14年 0粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值