在本篇博客中,我会向大家介绍一些题目并解决,本片博客适用于刚刚学了一段时间学到了数组的c++小小程序员。(不是c++也可以看看呗,就看看思路)3…2…1…开始。 淘淘摘苹果 大意:陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。 现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。 ##思路##: 咳咳咳,开始讲题了。 首先我们看到了题目,首先应该想应该输出个神马?这里告诉了我们:淘淘的身高以及十个苹果的高度。那么淘淘能摘下苹果呢?那就是当淘淘的身高加上板凳的身高能到或高于苹果的高度时,就可以掉下来,虽然有点不科学…… 那么列一下关系式:(伪代码) { 如果(淘高+凳高>=苹高) { 计数器+1; } } 列代码(可以先自己想一下,因为后面有彩蛋!)
#include<iostream> #include<cstdio> using namespace std; int a[11]; int main() { for(int i=1;i<=10;i++) { cin>>a[i]; } int n,s=0;//n为淘淘身高,s为计数器。 cin>>n; for(int i=1;i<=10;i++) { if(n+30>=a[i]) { s++; } } cout<<s; }怎么样,懂了吗?这可是noip普及组的题,你做出来了吗? 作业: 题目描述
c兄在淘淘摘苹果的那个果园里摘了n个完全互不相同的苹果,好客的园主为他提供了k个篮子,他想把苹果装在篮子里拎回家(由于c兄的手是无限大的,所以你不必考虑他能不能同时拎这么多篮子)。同时,他不希望有任何一个篮子里是空的,因为这样就做不到物尽其用= =。因此他想知道一共有多少种放苹果的方法,由于他的大脑运算过慢,所以找到了聪明机智的你,他在摘苹果上已经花了很长时间,所以他只能等1秒。(方法很可能非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常多,c兄的大脑无法存储,所以他会给你一个数p,输出方法数除以p的余数就可以了) 输入输出格式
输入格式: 一行三个数,依次为n,k,p,含义如题面所示。 输出格式: 一个数,方法数除以p的余数,行末有回车。 输入输出样例
输入样例#1: 4 2 3 输出样例#1: 1 不会做看下面(确定你思考了哦^_^)
#include<iostream> #include<cmath> #include<cstdio> #include<algorithm> using namespace std; unsigned long long f[10001][1001]={0}; int main() { long long n,m,mo; cin>>n>>m>>mo; f[1][1]=1; for (int i=1;i<=n;i++) { f[i][1]=1; for (int j=1;j<=m;j++) if(i==1&&j==1) continue;else f[i][j]=((j%mo)*(f[i-1][j]%mo)%mo+(f[i-1][j-1])%mo)%mo; } printf("%llu\n",f[n][m]); }拜拜