• 2019/10/26 TZOJ


    1001 Flooded Island 

    http://www.tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=4521

    把陆地四面其中三面被海洋环绕的‘@’标记。

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 char ma[15][15];
     5 int dir[4][2]={-1,0,1,0,0,-1,0,1};
     6 int main()
     7 {
     8     memset(ma,'.',sizeof(ma));
     9     int n,m;scanf("%d%d",&n,&m);
    10     for(int i=1;i<=n;i++)
    11     {
    12         getchar();
    13         for(int j=1;j<=m;j++)
    14             scanf("%c",&ma[i][j]);
    15     }
    16     int mini=30,maxi=-1,minj=30,maxj=-1;
    17     for(int i=1;i<=n;i++)
    18         for(int j=1;j<=m;j++)
    19         {
    20             int cnt=0;
    21             if(ma[i][j]=='X')
    22             {
    23                 for(int k=0;k<4;k++)
    24                 {
    25                     int nowi=i+dir[k][0],nowj=j+dir[k][1];
    26                     if(ma[nowi][nowj]=='.') cnt++;
    27                 }
    28                 if(cnt>=3) ma[i][j]='@';
    29             }
    30             if(ma[i][j]=='X')
    31             {
    32                     mini=min(mini,i);
    33                     maxi=max(maxi,i);
    34                     minj=min(minj,j);
    35                     maxj=max(maxj,j);
    36             }
    37         }
    38     //printf("%d %d %d %d
    ",mini,maxi,minj,maxj);
    39     for(int i=mini;i<=maxi;i++)
    40     {
    41         for(int j=minj;j<=maxj;j++)
    42             printf("%c",ma[i][j]=='X'?'X':'.');
    43         printf("
    ");
    44     }
    45 }
    View Code

    1002 Buy Tickets

    http://www.tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=6018

    线段树,我先跑了

    1003 Strange fuction

    http://www.tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=6052

    F(x) = 6 * x^7+8*x^6+7*x^3+5*x^2-y*x (0 <= x <=100),给一个y解出F(x)min(x∈[0,100])

    求导,二分。

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 double f(double x,double y)
     5 {
     6     return 42*pow(x,6.0)+48*pow(x,5.0)+21*pow(x,2.0)+10*x-y;
     7 }
     8 double ans(double x,double y)
     9 {
    10     return 6*pow(x,7.0)+8*pow(x,6.0)+7*pow(x,3.0)+5*x*x-y*x;
    11 }
    12 int main()
    13 {
    14     int t;scanf("%d",&t);
    15     while(t--)
    16         {
    17             double y;scanf("%lf",&y);
    18             double mid,left=0.0,right=100.0;
    19             while(right-left>1e-8)
    20             {
    21                 mid=(left+right)/2.0;
    22                 if(f(mid,y)<1e-8) left=mid;
    23                 else right=mid;
    24             }
    25             printf("%.4f
    ",ans(mid,y));
    26         }
    27 }
    View Code

    太难了。自动忽略1004。

    1005 A sequence of numbers

    http://www.tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=6063

    看a、b、c是等差数列还是等比数列,然后算第k个。等差数列没话说,等比数列快速幂,注意mod

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 const int mod=200907;
     5 ll f(ll a,ll b)
     6 {
     7     ll res=1;
     8     while(b)
     9     {
    10         if(b&1) res=(res*a)%mod;
    11         b>>=1;
    12         a=(a*a)%mod;
    13     }
    14     return res;
    15 }
    16 int main()
    17 {
    18     int t;scanf("%d",&t);
    19     while(t--)
    20     {
    21         ll a,b,c,k,ans;scanf("%lld%lld%lld%lld",&a,&b,&c,&k);
    22         if((a+c)==2*b)
    23         {
    24             ll d=(b-a)%mod;
    25             ans=(d*(k-1)+a)%mod;
    26         }
    27         else{
    28             ll q=(b/a)%mod;
    29             ans=(f(q,k-1)*a%mod)%mod;
    30         }
    31         printf("%lld
    ",ans);
    32     }
    33 }
    View Code

    1006 GCD

    http://www.tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=6066

    求满足__gcd(i,n)>=k的i的个数,将满足的因子欧拉函数累加

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 int Eular(int n)
     5 {
     6     int res=n;
     7     for(int i=2;i*i<=n;i++)
     8         if(n%i==0)
     9         {
    10             res-=res/i;
    11             while(n%i==0) n/=i;
    12         }
    13     if(n>1) res-=res/n;
    14     return res;
    15 }
    16 int main()
    17 {
    18     int t;scanf("%d",&t);
    19     while(t--)
    20     {
    21         ll ans=0;
    22         int i,n,k;scanf("%d%d",&n,&k);
    23         for(i=1;i*i<n;i++)
    24         {
    25             if(n%i==0)
    26             {
    27                 if(i>=k) ans+=Eular(n/i);
    28                 if(n/i>=k) ans+=Eular(i);
    29             }
    30         }
    31         if(i*i==n&&i>=k) ans+=Eular(i);
    32         printf("%lld
    ",ans);
    33     }
    34 }
    View Code

    1007 Following Orders

    http://www.tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=6080

    我又双叒叕跑了

    1008 ST Task

    角速度v来转这个杆子,第i秒的影子Lcos(v*PI/180.0*i),注意向下取整。

    http://www.tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=2632

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 #define PI acos(-1)
     5 int main()
     6 {
     7     int l,v;scanf("%d%d",&l,&v);
     8     for(int i=0;i<=180/v;i++)
     9     {
    10         double l1=abs(l*cos(v*PI/180.0*i));
    11         int ll=(int)(l1+0.5);
    12         if(v*i<=90)
    13         {
    14             for(int j=l-ll;j>=1;j--) printf("S");
    15             for(int j=ll;j>=1;j--) printf("T");
    16             for(int j=0;j<l;j++) printf("S");
    17             printf("  %.5f
    ",l1*1.0/l*1.0/2.0);
    18         }
    19         else{
    20             for(int j=0;j<l;j++) printf("S");
    21             for(int j=ll;j>=1;j--) printf("T");
    22             for(int j=l-ll;j>=1;j--) printf("S");
    23             printf("  %.5f
    ",l1*1.0/l*1.0/2.0);
    24         }
    25     }
    26 }
    View Code
  • 相关阅读:
    多线程 C#解决方案小结
    程序员的灯下黑:Handson,Handson,Handson!
    有一家银行每天早上都在你的帐户里存入86,400
    3D流水线[引用]
    诸葛亮著作
    Vista 用户头像存储路径
    C# 关闭显示器的函数
    程序员的灯下黑:管理还是技术?兴趣优先
    VS1.4挤房+MH的登陆器
    失眠的调养
  • 原文地址:https://www.cnblogs.com/Aaaamber/p/11754406.html
Copyright © 2020-2023  润新知