• 1.28 CF#698div2


    A题暴力扫几遍就行

    代码:

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int n,a[105],b[106];
     4 int main(){
     5     int T;
     6     scanf("%d",&T);
     7     while (T--){
     8         scanf("%d",&n);
     9         for (int i=1; i<=n; i++) scanf("%d",&a[i]);
    10         memset(b,0,sizeof(b));
    11         int tot=n,res=0;
    12         while (tot>0){
    13             res++;
    14             int last=0;
    15             for (int i=1; i<=n; i++){
    16                 if (!b[i]){
    17                     if (a[i]>last) {
    18                         b[i]=1;
    19                         tot--;
    20                         last=a[i];
    21                     }
    22                 }
    23             }
    24         }
    25         printf("%d
    ",res);
    26     }
    27 }
    View Code

    B题是个奇怪的结论题,大概就是大于10倍的都行,整除的都行,减掉几十后整除的也行。

    代码:

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int q,d;
     4 int a[10005];
     5 int main(){
     6     int T;
     7     scanf("%d",&T);
     8     while(T--){
     9         scanf("%d%d",&q,&d);
    10         for (int i=1; i<=q; i++) scanf("%d",&a[i]);
    11         for (int i=1; i<=q; i++){
    12             if(a[i]>=(d*10+1)) {
    13                 printf("YES
    ");
    14                 continue;
    15             }
    16             else if(a[i]%d==0) {
    17                 printf("YES
    ");
    18                 continue;
    19             }
    20             else{
    21                 int flag=0;
    22                 for(int j=1; j<=10; j++){
    23                     if ((a[i]>j*10) && ((a[i]-10*j)%d==0)) {
    24                         flag=1;
    25                         break;
    26                     }
    27                 }
    28                 if (flag) {
    29                     printf("YES
    ");
    30                     continue;
    31                 }
    32             }
    33             printf("NO
    ");
    34         }
    35     }
    36 }
    View Code

    C题:这道题把点在数轴上排一排就很好做,因为公式一看就是距离公式,那么距离和的话,最外面两个点肯定包含了所有点,所以按照到两点的距离的性质,整个的距离就是最外面两点的n倍,所以最大的数是d[i]/2n,之后就按照这样一层一层推进去的就行,推得进去就是对的。

    但是这道题有几个比较怪的地方要特判一下(WA了好多发),一个是他是不允许数是零的还有一个是相邻两组点的距离和不允许相等(这个是肯定的),但是原来我觉得这样递推下去肯定会错就没管,没想到实际上居然推得出来,所以要特判判掉。

    代码:

     1 #include<bits/stdc++.h>
     2 #define ll long long
     3 using namespace std;
     4 ll a[200005];
     5 int main(){
     6     ll T;
     7     scanf("%lld",&T);
     8     while (T--){
     9         ll n;
    10         scanf("%lld",&n);
    11         for (ll i=1; i<=2*n; i++){
    12             scanf("%lld",&a[i]);
    13         }
    14         ll flag=1;
    15         sort(a+1,a+1+2*n);
    16         for (ll i=1; i<=2*n; i+=2){
    17             if (a[i]%2==1 || a[i]!=a[i+1]) {
    18                 flag=0;
    19             }
    20         }
    21         ll now=0;
    22         for (ll i=2*n; i>=1; i-=2){
    23             if (((a[i]-now*2)%i==0) && ((a[i]-now*2)>0) && (a[i]!=0) && (a[i]!=a[i-2])){
    24                 ll tmp=(a[i]-now*2)/i;
    25                 now+=tmp;
    26             }
    27             else {
    28                 flag=0;
    29                 break;
    30             }
    31         }
    32         if (flag==0){
    33             printf("NO
    ");
    34             continue;
    35         }
    36         printf("YES
    ");
    37     }
    38 }
    View Code

    D题:做出来的最后一题,一道数论题

    代码:

     1 #include<bits/stdc++.h>
     2 #define ll long long
     3 using namespace std;
     4 const ll INF=0X3f3f3f3f3f3f3f3f;
     5 ll n,k,a[200005],de[200005];
     6 ll gcd(ll a,ll b){
     7     return b == 0 ? a : gcd(b, a % b);
     8 }
     9 int main(){
    10     int T;
    11     scanf("%d",&T);
    12     while (T--){
    13         scanf("%lld%lld",&n,&k);
    14         ll minn=INF;
    15         for (int i=1; i<=n; i++){
    16             scanf("%lld",&a[i]);
    17             minn=min(minn,a[i]);
    18         }
    19         for (int i=1; i<=n; i++){
    20             de[i]=a[i]-minn;
    21         }
    22         ll ret=0;
    23         for (int i=1; i<=n; i++){
    24             ret=gcd(ret,de[i]);
    25         }
    26         int flag=0;
    27         for (int i=1; i<=n; i++){
    28             if (ret==0 && a[i]-k==0){
    29                 flag=1;
    30                 break;
    31             }
    32             else if (ret!=0 && abs(a[i]-k)%ret==0){
    33                 flag=1;
    34                 break;
    35             }
    36         }
    37         if (flag) printf("YES
    ");
    38         else printf("NO
    ");
    39     }
    40 }
    View Code
  • 相关阅读:
    Kubernetes实战总结
    Kubernetes实战总结
    Kubesnetes实战总结
    Kubernetes实战总结
    【转载】Nginx、HAProxy、LVS三者的优缺点
    Kubernetes实战总结
    【解决】 Streaming server stopped unexpectedly: listen tcp: lookup localhost on 114.114.114.114:53: no such host
    Kubernetes实战总结
    (转载)常用正则表达式大全——包括校验数字、字符、一些特殊的需求
    css选择器参考手册
  • 原文地址:https://www.cnblogs.com/i-caigou-TT/p/14347813.html
Copyright © 2020-2023  润新知