202-10-24(3)

2021.10.18-2021.10.24(3)
1,A. Elections-Codeforces Round #748 (Div. 3)
题意:abc是三个候选人初赛之后的票数,问如果某一个想要成功竞选还需要多少票。(1,票数需要严格大于2,三个问题相互独立)
题解:三个判断。依次进行三次,首先判断这个人是否大于另外两个人,大于输出0,不大于就选出另外两个中最大的减去这个人并加一。

#include<iostream>
#include<algorithm>
using namespace std;
#define ll long long
ll a[10];
ll n,m;
ll i1,i2,i3,i4,i5;
int main()
{
    int t;
    cin >> t;
    while(t--)
    {
    cin >> a[1]>>a[2]>>a[3];
    if(a[1]>a[2]&&a[1]>a[3]) {cout<<0<<' ';}
    else {cout<<max(a[2],a[3])-a[1]+1<<' ';}
   
     if(a[2]>a[1]&&a[2]>a[3]) {cout<<0<<' ';}
    else {cout<<max(a[1],a[3])-a[2]+1<<' ';}
    if(a[3]>a[2]&&a[3]>a[1]) {cout<<0<<' ';}
    else {cout<<max(a[2],a[1])-a[3]+1<<' ';}
    cout << endl;
    }
    return 0;
}

解释:如果想要大于另外两个,首先如果已经大于就直接输出,否则,找出另外两个最大的(其实就是三个中最大的)然后相减+1即可。
2,B. Make it Divisible by 25-Codeforces Round #748 (Div. 3)
题意:给出一个数(用字符串表示),要求删掉k个数后能被25整除,求k的最小值。
题解:两大步,每一步中有两小步。(1)从后向前找字符’0’位置m,从m向前找字符’0’或者是字符’5’并计为位置k。当k大于0的时候min=x.size()-m+(m-i1-1)(2)同样只是先找’5’
后找字符’2’或者是’7’。

#include<iostream>
#include<string>
#include<algorithm>
#include<map>
using namespace std;
string x;
int n,m,max1,min1;
int i1,i2,i3,i4,i5;
map<int,int > it;
int main()
{
    int t;
    cin >> t;
    while(t--)
    {
    cin >> x;
    it.clear();
    min1=99999;
    for(i1=x.size()-1;i1>=0;i1--)
    if(x[i1]=='0') break;
    m=i1;
    for(i1=i1-1;i1>=0;i1--)
    if(x[i1]=='0'||x[i1]=='5') break;
    if(i1<0) min1=99999;
    else {min1=x.size()-1-i1-1;}
    
    for(i1=x.size()-1;i1>=0;i1--)
    if(x[i1]=='5') break;
    m=i1;
    for(i1=i1-1;i1>=0;i1--)
    if(x[i1]=='2'||x[i1]=='7') break;
    
   if(i1>=0) 
    {max1=(x.size()-1-i1-1);
    min1=min(min1,max1);
    }
   
     cout <<min1<< endl;
    }
    return 0;
}

解释:如果要被25整除最后的数字一定是25,50,75,00,只要找到两个数字,删除两个数中间的数和最后一个数到第二个数之间的数。
3,C. Save More Mice-Codeforces Round #748 (Div. 3)
题意:原点有一只猫,在n处有一个洞,有m只老鼠在原点和洞之间。每一秒只有一只老鼠可以向右移动一格,移动完猫也向右移动一格,如果老鼠和猫在同一点(洞点除外,则老鼠死亡d(ŐдŐ๑)。问有最多多少只老鼠获救。
题解:先对老鼠坐标排序,从最大的开始每次sum=sum+n-a[i]当a[i]<=sum时结束。

#include<iostream>
#include<algorithm>
using namespace std;
#define ll long long
ll n,m;
ll i1,i2,i3,i4,i5;
ll a[400010];
ll sum;
int main()
{
    int t;
    cin >> t;
    while(t--)
    {
    cin>>n>>m;
    for(i1=1;i1<=m;i1++)
    scanf("%lld",&a[i1]);
    
    sort(a+1,a+1+m);
    
    sum=0;
    i2=0;
    
    for(i1=m;i1>=1;i1--)
    {
    if(a[i1]<=sum) break;
    i2++;
    sum=sum+n-a[i1];
    }
    
    cout <<i2<< endl;
    
    }
    return 0;
}

解释:(1)sum其实就是猫走的步数。当猫在老鼠位置时老鼠就无法走了。(2)这题用到了贪心的思想,从后面计算,因为每次只有一只老鼠可以走,最近的先走,如果从从中间计算,会使得后面无法移动被吃,而浪费步数。
4,D1. All are Same-Codeforces Round #748 (Div. 3)(最近很少做d题,能做出来自己都很吃惊ヽ(≧Д≦)ノ)
题意:给定一组数据,问找出整数k,使得部分元素减去k或者k的倍数,使得所有元素的值相同,找出k的最大值,如果k无限大输出-1。
题解:如果所有元素都相同,则输出-1。求出每个元素减去最小值后的值存到数组b里。将数组,求出数组中最大的一个数m。建立循环从m到1判断b中所有元素是否都能整除。如果能就输出。

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,m,min1;
int i1,i2,i3,i5,i4;
int a[100],b[100],c[100];
int main()
{
    int t;
    cin >> t;
    while(t--)
    {min1=1383993;
    cin >> n;
    for(i1=1;i1<=n;i1++)
    {
    scanf("%d",&a[i1]);
    min1=min(min1,a[i1]);
    }
    sort(a+1,a+1+n);
    for(i1=2;i1<=n;i1++)
    if(a[i1]!=a[i1-1]) break;
    if(i1==n+1) {cout<<-1<<endl;continue;}
    
    m=0;
    for(i1=2;i1<=n;i1++)
    b[i1]=a[i1]-min1;
    sort(b+2,b+1+n);
    for(i1=b[n];i1>=1;i1--)
    {
        for(i2=2;i2<=n;i2++)
        {if(b[i2]%i1!=0) break;}
        if(i2==n+1) {cout<<i1<<endl;goto L;}
    }
    cout <<1<< endl;
    L:;
    }
    return 0;
}

解释:如果k值无限大,说明所有所有元素都相同,否则两个不同的数,就算减去两个不同倍数的k之后相同,那k也是有固定大小的。不用考虑会有最小的元素也要减去k,因为这种情况下,其他元素也都多减了一个k。最后一步就是找k的值,最小也就是1因为any number%1==0

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<svg version="1.0" xmlns="http://www.w3.org/2000/svg" width="800.000000pt" height="106.000000pt" viewBox="0 0 800.000000 106.000000" preserveAspectRatio="xMidYMid meet"> <g transform="translate(0.000000,106.000000) scale(0.100000,-0.100000)" fill="#000000" stroke="none"> <path d="M2220 932 l0 -131 38 -6 c115 -18 198 -53 243 -101 l22 -24 27 68 c26 66 72 144 113 190 20 22 20 22 1 38 -64 52 -175 82 -336 91 l-108 6 0 -131z"/> <path d="M6673 1040 c-64 -39 -87 -106 -58 -171 44 -97 180 -107 235 -16 71 116 -63 257 -177 187z"/> <path d="M0 930 l0 -120 510 0 510 0 0 120 0 120 -510 0 -510 0 0 -120z"/> <path d="M1140 1045 c-1 -3 -1 -56 -1 -117 l0 -113 351 -5 352 -5 24 -28 c32 -37 32 -86 0 -116 -23 -21 -27 -22 -375 -24 l-353 -2 0 -110 0 -110 362 -5 362 -5 19 -24 c27 -33 25 -86 -6 -116 l-24 -25 -354 0 c-194 0 -356 -2 -358 -4 -2 -2 -3 -54 -1 -115 l3 -111 338 0 c367 0 412 5 501 57 62 37 138 110 163 158 16 29 21 59 22 110 0 76 -16 119 -61 168 l-26 28 20 22 c32 35 60 100 68 154 14 112 -56 230 -169 286 -106 52 -152 57 -519 57 -186 0 -338 -2 -338 -5z"/> <path d="M3031 1034 c-176 -38 -309 -143 -386 -306 -24 -51 -55 -132 -69 -180 -31 -106 -55 -155 -98 -198 -45 -45 -106 -70 -188 -77 l-70 -6 0 -133 0 -134 84 0 c172 0 321 48 399 128 l39 40 36 -40 c68 -76 179 -113 365 -125 l107 -6 0 135 0 136 -57 7 c-222 28 -330 177 -254 350 39 87 125 142 240 153 l66 7 3 133 3 132 -78 -1 c-43 0 -107 -7 -142 -15z"/> <path d="M3430 985 l0 -45 560 0 560 0 0 -93 c0 -59 -5 -99 -12 -110 -12 -16 -47 -17 -438 -15 l-425 3 0 35 0 35 388 3 387 2 0 40 0 40 -510 0 -510 0 0 -79 c0 -97 10 -125 52 -151 32 -19 51 -20 616 -20 644 0 629 -1 667 63 17 27 20 56 23 185 l4 152 -681 0 -681 0 0 -45z"/> <path d="M4994 1016 c-3 -8 -4 -27 -2 -43 l3 -28 276 -5 276 -5 -18 -42 -18 -43 -250 0 -250 0 -3 -211 c-2 -116 -1 -213 1 -215 2 -2 229 -4 503 -4 l498 0 0 50 0 50 -380 0 -381 0 3 118 3 117 423 0 423 0 -1 -310 c0 -271 -3 -311 -17 -327 -15 -17 -44 -18 -413 -18 -352 0 -399 2 -411 16 -9 12 -12 46 -10 125 l2 109 -125 0 -126 0 0 -122 c0 -143 13 -182 70 -211 32 -16 78 -17 613 -15 l579 3 34 37 c34 38 34 38 34 136 0 54 3 228 7 385 l6 287 -291 0 c-318 0 -303 -3 -281 58 l11 31 270 3 270 3 24 28 c52 60 88 57 -661 57 -582 0 -686 -2 -691 -14z"/> <path d="M6980 976 c0 -51 27 -66 119 -66 l74 0 -6 -67 c-4 -38 -7 -94 -7 -125 l0 -58 -84 0 c-101 0 -136 -19 -136 -76 l0 -34 109 0 109 0 -5 -200 -6 -200 126 0 127 0 0 78 c0 44 3 134 7 200 l6 122 82 0 c100 0 135 19 135 76 l0 34 -111 0 -112 0 6 83 c4 45 7 101 7 125 l0 42 141 0 140 0 -5 -42 c-3 -24 -8 -174 -11 -333 -7 -320 -6 -331 50 -365 27 -17 50 -20 149 -20 l116 0 0 40 c0 35 -3 40 -24 40 -48 0 -48 4 -37 374 6 189 11 358 11 375 l0 31 -485 0 -485 0 0 -34z"/> <path d="M6558 729 c-11 -6 -18 -22 -18 -39 0 -28 2 -30 41 -30 l42 0 -6 -127 c-4 -71 -10 -219 -13 -331 l-7 -202 104 0 c80 0 110 4 128 16 21 15 61 16 465 5 710 -19 643 -21 672 12 13 15 24 36 24 46 0 16 -30 18 -432 29 -601 17 -653 20 -682 43 l-24 19 5 285 6 285 -144 0 c-79 0 -152 -5 -161 -11z"/> <path d="M7 633 c-4 -3 -7 -145 -7 -315 l0 -308 510 0 510 0 0 115 0 115 -340 0 -340 0 0 85 0 85 340 0 340 0 0 115 0 115 -503 0 c-277 0 -507 -3 -510 -7z"/> <path d="M3524 602 c-6 -4 -39 -60 -74 -124 l-62 -118 69 0 c101 0 141 14 196 71 l47 49 423 0 422 0 -3 -182 c-2 -100 -7 -187 -13 -194 -5 -6 -33 -14 -61 -16 -40 -4 -57 -11 -75 -32 -47 -55 -40 -58 141 -54 148 3 167 5 193 24 15 11 33 32 39 45 8 15 13 111 15 259 l4 235 -522 3 c-515 2 -521 2 -516 22 5 19 0 20 -103 20 -60 0 -114 -4 -120 -8z"/> <path d="M3748 433 c-16 -18 -218 -404 -218 -416 0 -15 113 -6 164 14 94 35 144 90 228 251 40 79 74 148 76 155 3 10 -24 13 -116 13 -101 0 -121 -3 -134 -17z"/> <path d="M4188 433 c-13 -15 -218 -410 -218 -420 0 -1 37 -3 83 -3 152 1 187 32 312 273 l87 167 -125 0 c-106 0 -126 -3 -139 -17z"/> </g> </svg> 优化并且重构这段svg代码
04-20

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值