头像

乔乔敲可爱




离线:1天前


活动打卡代码 AcWing 1341. 十三号星期五

#include<bits/stdc++.h>
using namespace std;
int m[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int w[7];
int main()
{
    int n;
    cin>>n;
    int d=0;
    for(int y=1900;y<1900+n;y++)
    {
        for(int i=1;i<=12;i++)
        {
            w[(d+12)%7]++;
            d+=m[i];
            if(i==2)
            {
                if(y%100&&y%4==0||y%400==0)
                d++;
            }
        }
    }
    for(int i=5,j=0;j<7;i=(i+1)%7,j++)
    cout<<w[i]<<" ";
    cout<<endl;
}



活动打卡代码 AcWing 754. 平方矩阵 II

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    while(cin>>n&&n)
    {
       for(int i=1;i<=n;i++)
       {
           for(int j=i;j>=1;j--) cout<<j<<" ";
           for(int k=2;k<=n-i+1;k++) cout<<k<<" ";
           cout<<endl;
       }
       cout<<endl;
    }
}


活动打卡代码 AcWing 754. 平方矩阵 II

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    while(cin>>n&&n)
    {
        for(int i=1;i<=n;i++)
        {for(int j=1;j<=n;j++)
        {
            cout<<abs(i-j)+1<<" ";
        }
        cout<<endl;}
        cout<<endl;
    }
}


活动打卡代码 AcWing 1532. 找硬币

#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <stack>
#include <cmath>
#include <algorithm>
using namespace std;
typedef long long ll;
int n,m;
int a[100005];
int main()
{
    cin>>n>>m;
    int v1=0,v2=0,flag=0;
    for(int i=0;i<n;i++)cin>>a[i];
    sort(a,a+n);
    int l=0,r=n-1;
    while(l<r)
    {
        if(a[l]+a[r]==m)
        {
            v1=a[l];
            v2=a[r];
            flag=1;
            break;
        }
        else if(a[l]+a[r]>m) r--;
        else l++;
    }
    if(flag) cout<<v1<<" "<<v2;
    else cout<<"No Solution";
}



活动打卡代码 AcWing 1208. 翻硬币

#include<bits/stdc++.h>
using namespace std;
int main()
{
    string s1,s2;
    cin>>s1>>s2;
    int len=s1.size();
    int ans=0;
    for(int i=0;i<len-1;i++)
    {
        if(s1[i]!=s2[i])
        {
            ans++;
            if(s1[i]=='*')s1[i]='o';
            else s1[i]='*';
            if(s1[i+1]=='*')s1[i+1]='o';
            else s1[i+1]='*';
        }
    }
    cout<<ans<<endl;
}


活动打卡代码 AcWing 429. 奖学金

#include <iostream>
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define INF 0x3f3f3f3f
const int N=50010;
int n;
struct stu
{
    int xh;
    int yw,sx,yy;
    int sum=0;
}a[305];
bool cmp(struct stu  x,struct  stu y)
{
   if(x.sum==y.sum){
    if(x.yw==y.yw) return x.xh<y.xh;
    else return x.yw>y.yw;
   }
   else return x.sum>y.sum;
}
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i].yw>>a[i].sx>>a[i].yy;
        a[i].xh=i;
        a[i].sum=a[i].yw+a[i].sx+a[i].yy;
    }
    sort(a+1,a+n+1,cmp);
    for(int i=1;i<=5;i++)
    cout<<a[i].xh<<" "<<a[i].sum<<endl;
}


活动打卡代码 AcWing 422. 校门外的树

#include<bits/stdc++.h>
#include<iostream>
#include<cstring>
using namespace std;
typedef long long ll;
int t[10005]; 
int main()
{
    int l,m;
    int a,b;
    cin>>l>>m;
    for(int i=0;i<=l;i++)
    t[i]++;
    while(m--)
    {
       cin>>a>>b;
       for(int i=a;i<=b;i++)
       t[i]--;
    }
    int sum=0;
    for(int i=0;i<=l;i++)
    {
        if(t[i]==1)
        sum++;
    }
    cout<<sum;
    system("pause");
}


活动打卡代码 AcWing 1227. 分巧克力

#include<bits/stdc++.h>
#include<iostream>
using namespace std;
typedef long long ll;
int h[100005],w[100005]; 
int n,k;
int ch(int a)
{
    int ans=0;
    for(int i=0;i<n;i++)
    {
        ans+=(h[i]/a)*(w[i]/a);
        if(ans>=k) return 1;
    }
    return 0;
}
int main()
{
    cin>>n>>k;
    for(int i=0;i<n;i++)
        cin>>h[i]>>w[i];
    ll l=0,r=1e5;
    while(r>l)
    {
        ll mid= l+r+1 >>1;
        if(ch(mid)) l=mid;
        else r=mid-1;
    }
    cout<<r;
    //system("pause");
}




二分法

C++ 代码

#include<bits/stdc++.h>
#include<iostream>
using namespace std;
typedef long long ll; 
int a[100005]; int n,m;
int xz(double len)
{
    int ans=0;
    for(int i=0;i<n;i++)
    {
        ans+=a[i]/len;
        if(ans>=m) return 1;
    }
    return 0;
}
int main()
{
    cin>>n>>m;
    for(int i=0;i<n;i++)
    cin>>a[i];
    double l=0,r=1e9;
   while(r-l>1e-4)//double类型用这个精度更高来判断 r>l
   {
       double mid=l+(r-l)/2;
       if(xz(mid)) l=mid;
       else r=mid;
   }
   printf("%.2f\n",l);
}



活动打卡代码 AcWing 680. 剪绳子

#include<bits/stdc++.h>
#include<iostream>
using namespace std;
typedef long long ll; 
int a[100005]; int n,m;
int xz(double len)
{
    int ans=0;
    for(int i=0;i<n;i++)
    {
        ans+=a[i]/len;
        if(ans>=m) return 1;
    }
    return 0;
}
int main()
{
    cin>>n>>m;
    for(int i=0;i<n;i++)
    cin>>a[i];
    double l=0,r=1e9;
   while(r-l>1e-4)
   {
       double mid=l+(r-l)/2;
       if(xz(mid)) l=mid;
       else r=mid;
   }
   printf("%.2f\n",l);
}