寒假每日一题(入门组)week2 完结

Posted 辉小歌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了寒假每日一题(入门组)week2 完结相关的知识,希望对你有一定的参考价值。

目录

756. 蛇形矩阵【模拟】


https://www.acwing.com/problem/content/758/

#include<bits/stdc++.h>
using namespace std;
const int N=110;
int a[N][N],n,m;
int dx[4]=0,1,0,-1;
int dy[4]=1,0,-1,0;
int main(void)

    cin>>n>>m;
    int k=0,x=0,y=0,d=0;
    while(k<n*m)
    
        k++;
        a[x][y]=k;
        int tempx=x+dx[d],tempy=y+dy[d];
        if(tempx<0||tempx>=n||tempy<0||tempy>=m||a[tempx][tempy]) d=(d+1)%4;
        x=x+dx[d],y=y+dy[d];
    
    for(int i=0;i<n;i++)
    
        for(int j=0;j<m;j++) cout<<a[i][j]<<" ";
        cout<<endl;
    
    return 0;

1113. 红与黑【dfs】


https://www.acwing.com/problem/content/1115/

#include<bits/stdc++.h>
using namespace std;
const int N=1e2+10;
int n,m,ans,st[N][N];
string s[N];
int dx[4]=-1,0,0,1;
int dy[4]=0,-1,1,0;
void dfs(int x,int y)

    ans++;
    st[x][y]=1;
    for(int i=0;i<4;i++)
    
        int tempx=x+dx[i];
        int tempy=y+dy[i];
        if(tempx<0||tempx>=n) continue;
        if(tempy<0||tempy>=m) continue;
        if(st[tempx][tempy]) continue;
        if(s[tempx][tempy]!='.') continue;
        dfs(tempx,tempy);
    

int main(void)

    while(cin>>m>>n,n!=0&&m!=0)
    
        ans=0;
        memset(st,0,sizeof st);
        for(int i=0;i<n;i++) cin>>s[i];
        for(int i=0;i<n;i++)
        
            for(int j=0;j<m;j++)
            
                if(!st[i][j]&&s[i][j]=='@') dfs(i,j);
            
        
        cout<<ans<<endl;
    
    return 0;

1346. 回文平方【模拟】


https://www.acwing.com/problem/content/1348/

#include<bits/stdc++.h>
using namespace std;
int n;
char get(int x)

    if(x<10) return '0'+x;
    else return 'A'+x-10;

void solve(int x)

   string a,b,c;
   int temp=x;
   while(temp)a+=get(temp%n),temp/=n;
   temp=x*x;
   while(temp)b+=get(temp%n),temp/=n;
   c=b;
   reverse(a.begin(),a.end());
   reverse(c.begin(),c.end());
   if(b==c) cout<<a<<" "<<b<<endl;

int main(void)

    cin>>n;
    for(int i=1;i<=300;i++) solve(i);
    return 0;

680. 剪绳子【二分】


https://www.acwing.com/problem/content/682/

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
double a[N];
int n,m;
bool check(double mid)

    int cnt=0;
    for(int i=0;i<n;i++) cnt+=a[i]/mid;
    return cnt>=m;

int main(void)

    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)/2;
        if(check(mid)) l=mid;
        else r=mid;
    
    printf("%.2lf",l);
    return 0;

1227. 分巧克力【二分】


https://www.acwing.com/problem/content/1229/

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int a[N],b[N],n,m;
bool check(int mid)

    int cnt=0;
    for(int i=0;i<n;i++) cnt+=(a[i]/mid)*(b[i]/mid);
    return cnt>=m;

int main(void)

    cin>>n>>m;
    for(int i=0;i<n;i++) cin>>a[i]>>b[i];
    int l=0,r=1e9;
    while(l<r)
    
        int mid=l+r+1>>1;
        if(check(mid)) l=mid;
        else r=mid-1;
    
    cout<<l;
    return 0;

422. 校门外的树【差分】


https://www.acwing.com/problem/content/424/

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int a[N],n,m;
int add(int l,int r,int c)

    a[l]+=c;
    a[r+1]-=c;

int main(void)

    cin>>n>>m;
    while(m--)
    
        int l,r; cin>>l>>r;
        add(l,r,-1);
    
    int cnt=0,sum=0;
    for(int i=0;i<=n;i++) 
    
        sum+=a[i];
        if(sum>=0) cnt++;//说明还有树
    
    cout<<cnt;
    return 0;

429. 奖学金【模拟】


https://www.acwing.com/problem/content/431/

#include<bits/stdc++.h>
using namespace std;
struct nodeint id,a,b,c,sum;;
vector<node>ve;
int n;
bool cmp(node a,node b)

    if(a.sum!=b.sum) return a.sum>b.sum;
    if(a.a!=b.a) return a.a>b.a;
    return a.id<b.id;

int main(void)

    cin>>n;
    for(int i=1;i<=n;i++)
    
        int a,b,c; cin>>a>>b>>c;
        ve.push_back(i,a,b,c,a+b+c);
    
    sort(ve.begin(),ve.end(),cmp);
    for(int i=0;i<min(n,5);i++) cout<<ve[i].id<<" "<<ve[i].sum<<endl;
    return 0;

以上是关于寒假每日一题(入门组)week2 完结的主要内容,如果未能解决你的问题,请参考以下文章

寒假每日一题(入门组)week3 完结

寒假每日一题(入门组)week7 完结

寒假每日一题(入门组)week4 完结

寒假每日一题(入门组)week1 完结

寒假每日一题(入门组)week5 完结

寒假每日一题(入门组)week6 完结