【CSPJ】CSPJ小学组

小学生现在都开始参加算法竞赛了,一起来感受下难度

1.扑克牌

【CSPJ】CSPJ小学组_第1张图片
【CSPJ】CSPJ小学组_第2张图片

error

【CSPJ】CSPJ小学组_第3张图片
解题思路
用空间换取时间,利用一个num二维数组储存各个花色不同点数缺少的纸牌数,行代表花色,列代表点数,例如:该语句num[0][8]=1;意为花色P点数为8的纸牌缺少一张。(其中num[i][0]储存四种花色剩余纸牌的总数)

具体解法
输入字符串S并解析它,将各花色缺少的纸牌数储存到num数组中,检查缺少的纸牌是否重复,并记录每种花色缺少的数量,用每种花色纸牌的总数减去缺少的数量即为每种花色剩余的纸牌数量。

#include
#include
#include
#include
using namespace std;
int main(void)
{
    freopen("card.in","r",stdin);
    freopen("card.out","w",stdout);
	string s;//缺少的纸牌语句
	int num[4][14]={0};//储存四种花色、十三个点数的纸牌缺少的数量(num[i][0]储存四种花色剩余纸牌的总数)
	cin >> s;
	//记录缺少的纸牌
	for (int i =0;i

2.东湖航线

【CSPJ】CSPJ小学组_第4张图片
【CSPJ】CSPJ小学组_第5张图片
第二题考察的知识点是递推相对简单

#include
#include
#include
#include
#define N 1010
using namespace std;
int f[N];
int main()
{
    freopen("route.in","r",stdin);
    freopen("route.out","w",stdout);
    int n;
    scanf("%d",&n);
    int i,j;
    f[0]=1;
    f[1]=1;
    for(i=2;i<=n;i++)
     {
         f[i]=f[i-1];
         for(j=2;j<=i;j++)
        (f[i]+=f[j-2]*f[i-j])%=10007;
     }
     printf("%d",f[n]);
     return 0;
 }

3.甲虫入侵

【CSPJ】CSPJ小学组_第6张图片
【CSPJ】CSPJ小学组_第7张图片
【CSPJ】CSPJ小学组_第8张图片
【CSPJ】CSPJ小学组_第9张图片
【CSPJ】CSPJ小学组_第10张图片
【CSPJ】CSPJ小学组_第11张图片

#include
#include
#include
#include
#include
#include
using namespace std;
typedef long long ll;
const int MAXN=2010;
const ll INF=1ll<<47;
const ll way[4][2]={{0,1},{0,-1},{1,0},{-1,0}};

struct rect{
    ll p1,q1,p2,q2;
}rec[MAXN];

int n,tot=0;
int vis[MAXN][MAXN];
int lst[2],now[2];
mapxpos,ypos;
vectorx,y;
queue >q;

inline int max(int x,int y){
    return x>y?x:y;
}
inline int min(int x,int y){
    return xv,ll num){
    return find(v.begin(),v.end(),num)-v.begin();
}

int main(){
    //freopen("beetle.in","r",stdin);
    //freopen("beetle.out","w",stdout);


    x.push_back(-INF);x.push_back(INF);
    y.push_back(-INF);y.push_back(INF);
    scanf("%d",&n);
    for(int i=0;iu,v;
    	u=q.front();q.pop();
    	for(int i=0;i<4;i++){
    		v=u;
			v.first+=way[i][0];v.second+=way[i][1];
			if(v.first>=0&&v.first=0&&v.second

你可能感兴趣的:(算法,c++,动态规划)