zoukankan      html  css  js  c++  java
  • Educational Codeforces Round 23

    A题

    分析:注意两个点之间的倍数差,若为偶数则为YES,否则为NO

     1 #include "iostream"
     2 #include "cstdio"
     3 #include "cstring"
     4 #include "string"
     5 #include "cmath"
     6 using namespace std;
     7 int main()
     8 {
     9     int x1,y1,x2,y2;
    10     cin>>x1>>y1>>x2>>y2;
    11     int x,y;
    12     cin>>x>>y;
    13     int cnt1=x2-x1;
    14     int cnt2=y2-y1;
    15     int flag=0;
    16     if(cnt1%x){
    17         flag=1;
    18     }
    19     if(cnt2%y){
    20         flag=1;
    21     }
    22     if(abs(abs(cnt1/x)-abs(cnt2/y))%2){
    23         flag=1;
    24     }
    25     if(!flag){
    26         cout<<"YES"<<endl;
    27     }else{
    28         cout<<"NO"<<endl;
    29     }
    30 }
    View Code

    B题

    分析:先看只用第一个数是否满足情况,如果不行在加入第二个数,不行在加入第三个数,如此分别统计三种情况即可

     1 #include "iostream"
     2 #include "cstdio"
     3 #include "cstring"
     4 #include "string"
     5 #include "algorithm"
     6 #include "set"
     7 #include "vector"
     8 using namespace std;
     9 const int maxn=100000+10;
    10 long long a[maxn];
    11 int n;
    12 long long solve3(long long sum){
    13     return (sum*(sum-1)*(sum-2)/6);
    14 }
    15 long long solve2(long long sum){
    16     return (sum*(sum-1)/2);
    17 }
    18 int main()
    19 {
    20     cin>>n;
    21     for(int i=0;i<n;i++)
    22         cin>>a[i];
    23     sort(a,a+n);
    24     set<long long>h;
    25     for(int i=0;i<n;i++){
    26         h.insert(a[i]);
    27     }
    28     set<long long>::iterator it;
    29     vector<long long>q;
    30     for(it=h.begin();it!=h.end();it++){
    31         q.push_back(*it);
    32     }
    33     long long cnt1=0,cnt2=0,cnt3=0;
    34     for(int i=0;i<n;i++){
    35         if(a[i]==q[0]){
    36             cnt1++;
    37         }else if(a[i]==q[1]){
    38             cnt2++;
    39         }else if(a[i]==q[2]){
    40             cnt3++;
    41         }
    42     }
    43     if(cnt1>=3){
    44         cout<<solve3(cnt1)<<endl;
    45     }else if(cnt1==2){
    46         cout<<cnt2<<endl;
    47     }else{
    48         if(cnt2>=2){
    49             cout<<solve2(cnt2)<<endl;
    50         }else{
    51             cout<<cnt3<<endl;
    52         }
    53     }
    54     return 0;
    55 }
    View Code

    C题

    分析:因为两个数的差值最大不会超过18*9=162,所以直接暴力即可

     1 #include "iostream"
     2 #include "cstdio"
     3 #include "cstring"
     4 using namespace std;
     5 long long a,b;
     6 long long solve(long long num){
     7     long long ans=0;
     8     while(num){
     9         long long mod=num%10;
    10         ans+=mod;
    11         num/=10;
    12     }
    13     return ans;
    14 }
    15 int main()
    16 {
    17     cin>>b>>a;
    18     long long sum=b-a;
    19     if(sum<=0){
    20         cout<<"0"<<endl;
    21         return 0;
    22     }
    23     long long cnt=0;
    24     if(b-a<=162){
    25         for(long long i=a;i<=b;i++){
    26             long long tt=i;
    27             //cout<<b-solve(tt)<<endl;
    28             if((i-solve(tt))>=a)
    29                 cnt++;
    30         }
    31         cout<<cnt<<endl;
    32     }else{
    33         for(long long i=a;i<=a+162;i++){
    34             long long yy=i;
    35             if((i-solve(yy))<a)
    36                 cnt++;
    37         }
    38         cout<<sum-cnt+1<<endl;
    39     }
    40     return 0;
    41 }
    View Code
  • 相关阅读:
    leetcode5 Longest Palindromic Substring
    leetcode17 Letter Combinations of a Phone Number
    leetcode13 Roman to Integer
    leetcode14 Longest Common Prefix
    leetcode20 Valid Parentheses
    leetcode392 Is Subsequence
    leetcode121 Best Time to Buy and Sell Stock
    leetcode198 House Robber
    leetcode746 Min Cost Climbing Stairs
    tomcat下使用druid配置jnid数据源
  • 原文地址:https://www.cnblogs.com/wolf940509/p/7039581.html
Copyright © 2011-2022 走看看