头像

Stars星

你要学会c++,c++会让你得高血压




离线:2天前


最近来访(232)
用户头像
kkaa
用户头像
Whalefall.
用户头像
嘤嘤嘤么么叽
用户头像
txc.
用户头像
天元之弈
用户头像
ljh_pkq
用户头像
acs
用户头像
梦在深巷
用户头像
lpq1234
用户头像
做事要有遗逝感
用户头像
Anohgy
用户头像
怪盗基德kid
用户头像
Xahz2023
用户头像
sgxxyyds
用户头像
太雪菜
用户头像
qwf
用户头像
acwing_xyy
用户头像
云衣醉梦
用户头像
xyh不是xyy
用户头像
辣鸡号航母

新鲜事 原文

《暗藏玄鸡》 我在陆地上,骑着一匹骏马,拿着六倍镜,望着一艘航空母舰。船上有个人,在画一只栩栩如生的羊,旁边有一个淋满酱油的橙子。由于现在是春天,沼泽里的鲈鱼异常兴奋。
图片



Stars星
21天前

题目描述

输入整数 N,输出一个 N 阶的回字形二维数组。

数组的最外层为 1,次外层为 2,以此类推。

输入格式
输入包含多行,每行包含一个整数 N。

当输入行为 N=0 时,表示输入结束,且该行无需作任何处理。

输出格式
对于每个输入整数 N,输出一个满足要求的 N 阶二维数组。

每个数组占 N 行,每行包含 N 个用空格隔开的整数。

每个数组输出完毕后,输出一个空行。

数据范围
0≤N≤100

样例

输入样例:

1
2
3
4
5
0

输出样例:

1

1 1
1 1

1 1 1
1 2 1
1 1 1

1 1 1 1
1 2 2 1
1 2 2 1
1 1 1 1

1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1


蒟蒻思路

通过观察我们不难发现其中的规律 如下图:

无标题.png

最外围是1 1 1 1 1 1 ....接着是2 2 2 2 2 2…然后是3 3 3 3 3 ....

以此类推.....

那么我们只需将上下左右和最外围的距离的最小值输出来即可


C++ 代码

#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++){
                int s=i,x=n-i+1,z=j,y=n-j+1;
                cout<<min(min(s,x),min(z,y))<<" ";
            }
            cout<<endl;
        }
        cout<<endl;
    }
}



Stars星
24天前

题目描述

X 校最近打算美化一下校园环境。

前段时间因为修地铁,X 校大门外种的行道树全部都被移走了。

现在 X 校打算重新再种一些树,为校园增添一抹绿意。

X 校大门外的道路是东西走向的,我们可以将其看成一条数轴。

在这条数轴上有 n 个障碍物,例如电线杆之类的。

虽然障碍物会影响树的生长,但是障碍物不一定能被随便移走,所以 X 校规定在障碍物的位置上不能种树。

n 个障碍物的坐标都是整数;如果规定向东为正方向,则 n 个障碍物的坐标按照从西到东的顺序分别为 a1,a2,⋯,an。

X 校打算在 [a1,an] 之间种一些树,使得这些树看起来比较美观。

X 校希望,在一定范围内,树应该是等间隔的。

更具体地说,如果把 [a1,an) 划分成一些区间 [ap1,ap2),⋯,[apm−1,apm)(1=p1<p2<⋯<pm=n),那么每个区间 [api,api+1) 内需要至少种一棵树,且该区间内种的树的坐标连同区间端点 api,api+1 应该构成一个等差数列。

不同区间的公差,也就是树的间隔可以不相同。

例如,如果障碍物位于 0,2,6 这三处,那么我们可以选择在 [0,2) 和 [2,6) 分别种树,也可以选择在 [0,6) 等间隔种树。

如果是分别在 [0,2) 和 [2,6) 种树,由于每个区间内至少要种一棵树,坐标 1 上必须种树;而 [2,6) 上的树可以按照 1 的间隔种下,也可以按照 2 的间隔种下。

下图表示了这两种美观的种树方案,其中橙色的圆表示障碍物,绿色的圆表示需要在这个位置种树,箭头上的数字表示种下这棵树时对应的间隔为多少。
19_386bc805a3-1.png
对区间 [0,2) 和 [2,6) 分别以 1 和 2 的间隔种树是美观的

19_51e0feb3a3-2.png
对区间 [0,2) 和 [2,6) 分别以 1 的间隔种树也是美观的

而如果选择在 [0,6) 区间等间隔种树,我们只能以 3 的间隔种树,因为无论是选择间隔 1 或者间隔 2,都需要在坐标 2 上种树,而这个位置已经有障碍物了。

下图分别表示了间隔为 3,2,1 时的种树情况,红色箭头表示不能在这里种树。
19_7b741048a3-3.png
对区间 [0,6) 以 3 的间隔种树是美观的
19_9d223d52a3-4 (1).png.png)
对区间 [0,6) 以 2 的间隔种树是不美观的
19_a5777484a3-5.png
对区间 [0,6) 以 1 的间隔种树也是不美观的

一般地,给定一个区间 [al,ar),对于树的坐标的集合 T⊂(al,ar)(T⊂Z),归纳定义 T 在 [al,ar) 上是美观的:

如果 T≠∅,T∩{al,al+1,⋯,ar}=∅,并且存在一个公差 d≥1,使得 T∪{al,ar} 中的元素按照从小到大的顺序排序后,可以构成一个公差为 d 的等差数列(显然,这个等差数列的首项为 al,末项为 ar),则 T 在 [al,ar) 上是美观的;
如果 T∩{al,al+1,⋯,ar}=∅,并且存在一个下标 m(l<m<r),使得 T∩(al,am) 在 [al,am) 上是美观的,且 T∩(am,ar) 在 [am,ar) 上是美观的,则 T 在 [al,ar) 上是美观的。
根据这一定义,空集在任意区间上都不是美观的;另外,如果存在下标 i 使得 ai∈T,那么 T 一定不是美观的。

我们称两种种树的方案是本质不同的,当且仅当两种方案中,种树的坐标集合不同。

请帮助 X 校对 [a1,an) 求出所有本质不同的美观的种树方案。

当然,由于方案可能很多,你只需要输出总方案数对 109+7 取模的结果。
输入格式
输入的第一行包含一个正整数 n,表示障碍物的数量。

输入的第二行包括 n 个非负整数 a1,⋯,an,表示每个障碍物的坐标。

保证对 i=1,2,⋯,n−1,ai<ai+1。

输出格式
输出一个非负整数,表示本质不同的美观的种树方案的数量对 109+7 取模的结果。

数据范围
对于 10% 的数据,保证 n=2;
对于 30% 的数据,保证 n≤10;
对于 60% 的数据,保证 n≤100,ai≤1000;
对于 100% 的数据,保证 2≤n≤1000,0≤ai≤100,000,且至少存在一种美观的种树方案。

样例

输入样例1:

3
0 2 6

输出样例1:

3

样例1解释

这组样例即为题面描述中提到的那组。

输入样例2:

11
0 10 20 30 40 50 60 70 80 90 100

输出样例2:

256507

输入样例3:

333

输出样例3:

33 44 67 210 528 762 873 984 1234 1466 1739 2859 3421 4061 4598 5172 5201 5220 5261 5322 5389 5559 6670 7070 7898

C++ 代码

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

const int N=1010,M=2e5+10,mod=1e9+7;
vector<int> cnt[M];
int n;
int a[N];
int f[N];
bool st[M];

void init(){   ///处理约数数组cnt
    for(int i=1;i<M;i++){
        for(int j=2*i;j<M;j+=i){
            cnt[j].push_back(i);
        }
    }
}

int main(){
    scanf("%d", &n);

    for (int i = 0; i <n; i ++ ) scanf("%d",&a[i]);

    init();

    f[0]=1;
    for(int i=1;i<n;i++){
        memset(st,0,sizeof st);
        for(int j=i-1;j>=0;j--){
            int k=a[i]-a[j];
            int num=0;
            for(auto x:cnt[k]){
                if(st[x]) continue;
                st[x]=true;
                num++;
            }
            st[k]=true;
            f[i]=(f[i]+(long long)f[j]*num)%mod;
        }
    }

    cout<<f[n-1];

    return 0;
}



Stars星
26天前

AcWing 761. 字符串中的数字个数

#include<bits/stdc++.h>
using namespace std;
int main(){
    int sum=0;
    string s;
    getline(cin,s);
    int len=s.size();
    for(int i=0;i<len;i++){
        if(s[i]>='0'&&s[i]<='9'){
            sum++;
        }
    }
    cout<<sum;
}



Stars星
26天前

题目描述

请使用递归的方式求 n 的阶乘。

输入格式
共一行,包含一个整数 n。

输出格式
共一行,包含一个整数,表示 n 的阶乘的值。

数据范围
1≤n≤10

样例

输入样例:

3

输出样例:

6

参考文献

截图20230305193439.png

C++ 代码

#include<bits/stdc++.h>
using namespace std;
int com(int m){
    if(m==1){
        return 1;//如果等于1则返回1
    }
    else{
        return m*com(m-1);//否则返回m*m-1
    }
}
int main(){
    int n;
    cin>>n;
    cout<<com(n);//调用函数
}

截图20230305185942.png

点点赞吧!!!



新鲜事 原文

Stars星
26天前
好家伙
图片


分享 个人介绍

Stars星
1个月前

本蒟蒻也是来此网站一年了,再此给大家介绍一下我

除了我同学没人认识我吧

姓名:本蒟蒻jyc ( 怎么可能告诉你真名

学校:就读于慈溪XXX小学(~~你可以问问我同学)

事迹........没事迹

在本蒟蒻的垃圾能力下也是进了复赛,为什么复赛名单还没出。有小道消息,偷偷告诉本蒟蒻哦~


还有还有我的同学 @lpq1234 搞笑女+暴力女+“柔弱”女”。

她的个人主页

https://www.acwing.com/user/myspace/index/245566/


@acwing_xyy我的好兄弟。

他的主页

https://www.acwing.com/user/myspace/index/156618/


@Whalefall. 不知道该说她和我有啥关系,哦对!她妈妈的店开在我小区前面。

她的主页

https://www.acwing.com/user/myspace/index/247276/

本蒟蒻也是快上初中了,可最近一直很迷茫,不知该怎么办,帮帮我,蟹蟹٩(‘ω’)و




Stars星
1个月前

没事干在水题

具体忘了是几几年的试卷的第一道了

本人蒟蒻,不喜轻点喷

#include<bits/stdc++.h>
using namespace std;
int main(){
    freopen("count.in","r",stdin);
    freopen("count.out","w",stdout); 
    int n,m;
    int sum=0,sum1=0;
    int s;
    int maxx=0,minn=10000;
    cin>>n>>m;
    int a[1000];
    for(int i=1;i<=n;i++){
        sum=0;
        for(int j=1;j<=m;j++){
            cin>>s;
            if(s==0){
                sum++;
            }
        }
        a[i]=sum;
        sum1=sum1+sum;
    }
    for(int i=1;i<=n;i++){
        if(a[i]>maxx)   maxx=i;
        if(a[i]<minn)   minn=i;
    }
    if(maxx==0) maxx=1;
    if(minn==0) minn=1;
    cout<<sum1<<" "<<maxx<<" "<<minn;
} 



Stars星
1个月前
#include<bits/stdc++.h>
using namespace std;
void com(int n,char a,char b,char c){
    if(n==1){
        cout<<a<<"-"<<">"<<c<<endl; 
    }
    else{
        com(n-1,a,c,b);
        cout<<a<<"-"<<">"<<c<<endl;
        com(n-1,b,a,c);
    }
}
int main(){
    int n;
    cin>>n;
    com(n,'A','B','C');
}



Stars星
3个月前
#include<bits/stdc++.h>
using namespace std;
int main(){
    char s;//第一行输入的一个大写字母
    cin>>s;//输入大写字母
    double m[12][12];//定义一个二维数组 M[12][12]
    for(int i=0;i<12;i++){//双重循环
        for(int j=0;j<12;j++){//
            cin>>m[i][j];//输入二维数组 M[12][12]
        }
    }
    double a=0,c=0;//右下半部分的元素的和 和 右下半的元素部分个数
    for(int i=1;i<12;i++){//
        for(int j=12-i;j<12;j++){//
            a+=m[i][j];//求右下半部分的元素的和
            c++;//右下半的元素部分个数加一
        }
    }
    if(s=='S') printf("%.1f\n",a);//若为 S 输出右下半部分的元素的和
    else printf("%.1lf\n",a/c);//若为 M 输出右下半部分的元素的平均值
}