首页 > 其他分享 >寒假4

寒假4

时间:2024-02-27 16:37:46浏览次数:19  
标签:std pre int sum cin 寒假 main

A

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a,b,k;
    cin>>a>>b>>k;
    if(a>=b*k)cout<<"good\n";
    else cout<<"bad\n";
}

B

先看不能操作的时候就是 1 ,ai石子变为1需要ai-1,求和为总消耗w=sum(ai)-n

#include <bits/stdc++.h>
using namespace std;

int main() {
    int n;
    cin>>n;
    int a[n];
    int sum=0;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
        sum+=a[i];
    }
    if((sum+n)%2==0)cout<<"sweet\n";
    else cout<<"gui\n";
    return 0;
}

C

看数据范围 直接模拟

(最开始写的时候没注意 从前往后交换了,后面wa了才看到要把最后放到前面)

#include <bits/stdc++.h>
using namespace std;

int main() {
    int n,m,x,y;
    cin>>n>>m>>x>>y;
    vector<string> g(n);
    for(int i=0;i<n;i++)cin>>g[i];
    int p,q;
    cin>>p>>q;
    pair<int,int>pr[q];
    for(int i=0;i<q;i++)cin>>pr[i].first>>pr[i].second;
    while(p--)
    {
        for(int i=0;i<q;i++)
        {
            int op=pr[i].first,z=pr[i].second-1;
            if(op==1)
            {
                for(int j=m-1;j>=1;j--)swap(g[z][j],g[z][j-1]);
            }
            else
            {
                for(int j=n-1;j>=1;j--)swap(g[j][z],g[j-1][z]);
            }
            //for(string s:g)cout<<s<<endl;
        }
    }
    cout<<g[x-1][y-1]<<endl;
    return 0;
}

D

难绷 思维没到

其实和b类似,您只需要看操作后是怎样的,这里操作后数组的和不会变,就可以抽象为将sum(ai)分割,找sum因子就行,sum>=i*n我没直接写for里,先存set然后筛也能过

题目好名字()

#include "bits/stdc++.h"
#define int long long
using namespace std;

signed main() {
    int n;
    cin >> n;

    int sum = 0;
    for (int i = 0; i < n; i++) {
        int x;
        cin >> x;
        sum += x;
    }

    int cnt = 0;
    for (int i = 1; sum / i >= n; i++) {
        if (sum % i == 0) {
            cnt++;
        }
    }

    if(n!=1)cout << cnt << endl;
    else cout << 1 << endl;
    
}

E

题目好懂

前缀和维护一下

考虑贪心,map记录前缀和%后的余数

用两个指针指向前面和后面的位置查看 if : (sum[i]-sum[p])%k0||mp[sum[i]%k]1代表可以分割下去

然后指针继续往后跑就行

#include <bits/stdc++.h>
#define int long long
using namespace std;

signed main() {
    int n,k;
    cin>>n>>k;
    int a[n+1];
    int pre[n+1];
    pre[0]=0;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        //a[i]=a[i]%k;
        pre[i]=pre[i-1]+a[i];
    }
    int j=0,cnt=0;
    map<int,int>mp;
    for(int i=1;i<=n;i++){
        if((pre[i]-pre[j])%k==0||mp[pre[i]%k]==1){
            cnt++;
            j=i;
            mp.clear();
        }else{
            mp[pre[i]%k]=1;
        }
    }
    cout<<cnt<<endl;
}

G

前缀和预处理一下,然后遍历找*找到一个就一直找一个方向的就行了,我把代码hang出来了已经神志有点不清了,因为我要补下一场的了........

#include<bits/stdc++.h>
using namespace std;
#define int long long

signed main() {
    int n,m;
    cin>>n>>m;
    vector<vector<int>> a(n+2,vector<int>(m+2,0)),pre(a);
    for(int i=1;i<=n;++i) {
        string s;
        cin>>s;
        for(int j=1;j<=m;++j) {
            if(s[j-1]=='.') {
                a[i][j]=0;
            } else {
                a[i][j]=1;
            }
            pre[i][j]=pre[i][j-1]+a[i][j];
        }
    }
    int cnt=0;
    for(int i=1;i<=n;++i) {
        for(int j=1;j<=m;++j) {
            if(a[i][j]==0) {
                continue;
            }
            int lx=i,ly=j,rx=i,ry=j;
            for(int k=1;k<=500;++k) {
                lx++,ly--;
                rx++;ry++;
                if(lx<=0||lx>n||rx<=0||rx>n) {
                    break;
                }
                if(ly<0||ly>m||ry<0||ry>m) {
                    break;
                }
                if(a[lx][ly]!=1||a[rx][ry]!=1) {
                    break;
                }
                if(pre[rx][ry]-pre[lx][ly-1]==ry-ly+1) {
                    cnt++;
                }
            }
        }
    }
    cout<<cnt<<endl;
}

标签:std,pre,int,sum,cin,寒假,main
From: https://www.cnblogs.com/godcy/p/18037143

相关文章

  • 2024牛客寒假算法基础集训营1(补题)
    目录ABCDEFGHIKLAn的范围很小暴力直接\(O(n^3)\)直接做就行。我还傻的统计了一下前后缀,不过怎么写都行这道题。#include<bits/stdc++.h>#defineintlonglong#definerep(i,a,b)for(inti=(a);i<=(b);++i)#definefep(i,a,b)for(inti=(a);i>=(b);--i)#d......
  • 寒假学习25
    Scala数组Scala语言中提供的数组是用来存储固定大小的同类型元素,数组对于每一门编程语言来说都是重要的数据结构之一。声明数组变量并不是声明number0、number1、...、number99一个个单独的变量,而是声明一个就像numbers这样的变量,然后使用numbers[0]、numbers[1]、...、n......
  • 寒假学习23
    Scala异常处理Scala的异常处理和其它语言比如Java类似。Scala的方法可以通过抛出异常的方法的方式来终止相关代码的运行,不必通过返回值。抛出异常Scala抛出异常的方法和Java一样,使用throw方法,例如,抛出一个新的参数异常:thrownewIllegalArgumentException捕获异......
  • 寒假学习22
    Scala类和对象类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板。我们可以使用new关键字来创建类的对象,实例如下:实例class Point(xc: Int,yc:......
  • 寒假学习24
    Scala字符串以下实例将字符串赋值给一个常量:实例object Test {  val greeting: String = "Hello,World!"  def main(args: Array[String]) {   println( greeting )  }}以上实例定义了变量greeting,为字符串常量,它的类型为 String(java.lang.S......
  • 2024牛客寒假算法基础集训营4
    2024牛客寒假算法基础集训营4A 柠檬可乐题意根据给定的\(a\)和\(b\),判断是否\(a\gek\timesb\)思路题意非常直接代码/*******************************|Author:AlwaysBeShine|Problem:柠檬可乐|Contest:NowCoder|URL:https://ac.nowcoder.com/acm/......
  • 2024牛客寒假算法基础集训营6 K 错综的统一 题解
    Question2024牛客寒假算法基础集训营6K错综的统一一个矩阵仅由"r",“e”,“d”组成一个矩阵区域是美丽的,当且仅当:在矩形区域内,任意横向或纵向取一个长度大于\(1\)的连续字串是,该字符串都不是回文的现在有\(Q\)次询问,每次给定一个矩阵,问最少修改多少字符(字符只能修改"r"......
  • 寒假总结3spark简介
    ApacheSpark是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UCBerkeleyAMPlab(加州大学伯克利分校的AMP实验室)所开源的类HadoopMapReduce的通用并行框架,Spark,拥有HadoopMapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不......
  • 牛客寒假4到6补题
    牛客寒假4:F:来点每日一题题意:给定一个长度为n的数组,任意选6个数,6个数得分为 ((a-b)*c-d)*e-f,问最大能得到多少分解:n*n的dp,暴力枚举每一个数字v[i],f[i]表示以第i个位置结尾的得分最大是多少 voidsolve(){intn;cin>>n;vector<int>v(n+10......
  • [个人向]寒假隔膜评分
    寒假玩了很多隔膜啊,这里做一些简单的评价,按照最后一次游玩时间排序。随便做一点个人不负责任的评分,满分10分。巴别塔圣歌(全成就):10分,非常对胃口的语言学解谜游戏。画风剧情很加分,语言部分略简单了一点,跑图与追逐/躲避战有点不喜欢(但占比不高,对游戏整体体验影响不算大),真结局非......