2015年“达内杯”台州学院第八届大学生程序设计竞赛解题报告

2015年“达内杯”台州学院第八届大学生程序设计竞赛解题报告-by 614173971

A:12345

这题据说scanf出现错误,在此表示歉意,一方面也是没有验题人。

B:面子工程

 

C:F(x)

这题就把每个数拆一下,比如4就拆成322,然后替换

D:涂色问题

种数dp

dp[i][j][k][t][last]代表可以涂1次的颜色有i种,涂2次的颜色有j种,涂3次的颜色有k,涂4次的颜色有t种,并且上一次涂的颜色是可以涂last次

记忆化搜索

LL dfs(int s1, int s2, int s3, int s4, int last)
{
 //printf("%d %d %d %d %d\n", s1, s2, s3, s4, last);
 if(!s1 && !s2 && !s3 && !s4)
  return 1;
 if(dp[s1][s2][s3][s4][last] != -1)
  return dp[s1][s2][s3][s4][last];
  
 LL ans = 0;
 if(s1)
  ans += dfs(s1-1, s2, s3, s4, 1)*(s1-(last==2));

//上一次涂的颜色是可以使用2次的 那么上次使用的颜色变成只能使用1次了 所以减1
 if(s2)
  ans += dfs(s1+1, s2-1, s3, s4, 2)*(s2-(last==3));
 if(s3)
  ans += dfs(s1, s2+1, s3-1, s4, 3)*(s3-(last==4));
 if(s4)
  ans += dfs(s1, s2, s3+1, s4-1, 4)*s4;
 dp[s1][s2][s3][s4][last] = ans;
 return ans;
}

E:促销活动

poj的原题http://poj.org/problem?id=1456

F:袜子

签到题,乱搞即可

G:线性表公共元素

 

H:正方形

假设最终走了x个单位,那么x必然是4n(就是周长)的倍数,并且是x+1的倍数 所以x是4n和n+1的最小公倍数,x在除以n+1就是答案

I:三叉路口

叉积。。

J:OJ虚拟排名

 

 

总体来说难度还是比较低的,牛的人基本上1个多小时可以AK,本次比赛我负责出了4个较基础的题目和一个中等的dp,考虑大家是个人赛,题目的代码都缩短了,题目简短,没有歧义,第一题scanf的问题深感抱歉,


为解题报告打分
暂时不评分

★★
★★★
★★★★
★★★★★
发表您的评论(若贴AC代码或发表禁止言论等违禁行为将被删除并扣除积分)

|返回 |   | 转到页头|
Copyright @ 2008-2024(浙ICP备2022001332号), TZOJ. All Rights Reserved.