做题时,压根没想到是DP题---错排.
    错排:考虑一个有n个元素的排列,若一个排列中所有的元素都不在自己原来的位置上,那么这样的排列就称为原排列的一个错排
    错排公式:D(n)=(n-1)*(D(n-1)+D(n-2));
    公式原理:  第n个元素的位置选为k(0<k<n,k有n-1种选法,k的不同会影响Dn的值)
                而第k个元素的位置安排可分为两种情况:
                 1.安排在第n个位置,等价于k,n交换位置,就是去除k,n,求剩下n-2个元素的错排总数Dn-2;
                 2.不安排在第n个位置,即等价于k,n交换位置,但第n个元素(原第k个元素)是必须安排在别的位置的,相当于求n-1个元素的错排总数Dn-1;
    
    题目:

作为湖南省著名高校,我校的ACM运动一向开展的非常热烈,各级领导也大力支持(这句话很眼熟)。由于组队的策略太复杂,集训队决定采用一种简单粗暴的组队方法。 (1)有一张排名表,排在第1/4/7/10……名次的队员称为A类队员,排在第2/5/8……名次的队员称为B类队员,排在第3/6/9……名次的队员称为C类队员。排名表中,没有并列排名,即每个队员的排名都是唯一的。

(2)每支队伍必须由A/B/C类队员各1名组成,其中A类队员为队长。上面这两段也很眼熟。

(3)第1/2/3名组成HUNNU1队,第4/5/6名组成HUNNU2队,第7/8/9名组成HUNNU3队,……。 但是这样一来,参赛的各兄弟院校就非常清楚我校的虚实。俗话说,知己知彼,百战不殆。现在被知己知彼了,是极不好的。我们决定将上面的第3条规则修改一下:所有的队伍,都不应包含按原规则应该包含的队员。即,HUNNU1队不应包含第1/2/3名中的任何一个队员,HUNNU2队不应包含第4/5/6名中的任何一个队员,…… 。 当然,头两条规则还是要遵守的。问,在新规则下,我校一共有多少种不同的组队方法。由于这个数量可能非常巨大,我们只需其对2017取模的结果。 对我校而言,两个组队方法是不同的:只需存在某个HUNNUn队,在两个组队方法下所包含的队员不完全相同。注意:我们不考虑队员出现的顺序。即由1/5/9组成的队伍与由9/5/1组成的队伍是相同的。

Input
  输入有多个案例(不超过10000个),每个案例只有一行,为一个正整数n,表示我校集训队队员总数。保证n是3的倍数且n不大于30000。
Output
  每个案例输出一行,为答案。
Sample Input
3
6
Sample Output
0
1
Judge Tips  提示:在第一个案例中,只有1/2/3三名队员,也只有HUNNU1队。因此不可能按照新规则组队。在第二个案例中,可以把1/2/3组成HUNNU2队,把4/5/6组成HUNNU1队(除此之外的任何组队方法都会导致1队包含1/2/3中至少1人而不符合新规则),只有这1种方法。
题目链接: http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11687&courseid=155

按照题意:只需将A、B、C组分别错排,排法互不干扰,即符合乘法原理(错排形成的3*n的表格)组队方法总数为:(An)^3;

#include <iostream>
#include <string.h>
using namespace std;
int a[10001];//DP的实现:An=(n-1)*(An-1+An-2);
int A(int n)
{if(a[n]!=-1)return a[n];return a[n]=( ( A(n-1)+A(n-2) )%2017 )*( (n-1)%2017 ) %2017;
}
int main()
{int n;memset(a,-1,sizeof(a));a[1]=0;a[2]=1;while (cin>>n){n/=3;cout<<  ( ( (A(n)*A(n))%2017 )*A(n) )%2017 <<endl;//}return 0;
}

HUNNU---第八届校赛混淆视听相关推荐

  1. 南京理工大学第八届校赛 J-water1

    water1 Time Limit: 1000MS Memory Limit: 65536KB Description 听说全球气候变暖,冰川融化,海水淹大地.着实好奇要融化多少冰川会淹没我的宿舍,哦 ...

  2. 第八届ACM校赛-魔戒

    Problem Description 蓝色空间号和万有引力号进入了四维水洼,发现了四维物体--魔戒. 这里我们把飞船和魔戒都抽象为四维空间中的一个点,分别标为 "S" 和 &qu ...

  3. [置顶]2010年东北大学ACM程序设计竞赛冬季校赛题解

    8题只做出4题比较easy的题,而且做得挺麻烦,看来还要多练练. AC的题如下 NEUOJ  1112 I Love Apple Description So many people love app ...

  4. 2017校赛 问题 F: 懒人得多动脑

    题目描述 小D的家A和学校B都恰好在以点F为焦点的双曲线上,而小D每日所需的生活水源在一条平行该双曲线准线的直线上,设它的值为v.大家都知道,每天都是要喝水的,但是小D有点懒,他希望自己能在去上学或者 ...

  5. 关于安徽赛区推广校赛的实施办法

    关于安徽赛区 推广校赛的实施办法 全国组委会:   安徽赛区作为第一个省级赛区自2010年举办至今,受到安徽省教育厅和安徽各高校高度认可,是安徽省教育厅重点支持的大学生学科和技能竞赛A类赛事.但安徽赛 ...

  6. 第18届浙江大学校赛 Mergeable Stack

    The 18th Zhejiang University Programming Contest Sponsored by TuSimple 第18届浙江大学校赛的c题 解析:起先是用stack写的模 ...

  7. 21-5-22校赛J 下围棋

    21-5-22校赛J 下围棋 给出一个节点个数为n的树,其根节点为1,两个人轮流操作,每一次操作可以选择一个非根节点,删除这个节点及其子树,当一个人无法进行操作的时候,他就输掉了.问后手是必胜还是必败 ...

  8. 21-5-22校赛G 自行车调度

    21-5-22校赛G 自行车调度 n个点,m条边的无向带正权图(编号1到n).每个点初始有a[i](0<=a[i]<=1e5,1<=i<=n)辆自行车,自行车管理员可以花费一个 ...

  9. 2018 java蓝桥杯校赛题目

    1.[问题描述] 100 可以表示为带分数的形式:100 = 3 + 69258 / 714 还可以表示为:100 = 82 + 3546 / 197 注意特征:带分数中,数字1~9分别出现且只出现一 ...

最新文章

  1. 10 i lt shell的if_shell脚本编程之if、case条件语句
  2. Intellij idea 快键键
  3. 又一个查询,哥整了一天,NND有点受不鸟了
  4. 绘制几何图形——使用android.graphics类 onDraw
  5. 【CCCC】L3-021 神坛 (30分)计算几何+求三角形面积(极角排序)
  6. 节点本地范围和链路本地范围_微服务链路追踪——skywalking
  7. IDEA 安装字体 安装JetBrains Mono字体
  8. python 自动登录网站_Python使用selenium实现网页用户名 密码 验证码自动登录功能...
  9. web1.0、web2.0与web3.0
  10. 系统资源的观察(摘自鸟哥的私房菜)
  11. Dockerfile说明
  12. python机器学习思维导图脑图(完整版)
  13. java导出excel 方式_java导出Excel通用方法
  14. android 调用系统文件管理器
  15. python中的返回值是什么意思_python中函数的返回值是什么
  16. VS2010中dumpbin工具的使用
  17. 小程序如何指定按钮分享指定内容
  18. Wondershare Filmora 9.1.0.9 特别版 Mac 易用的视频编辑工具
  19. 2019最新后盾Thinkphp5 博客项目实战全套
  20. Leetcode P85 Java

热门文章

  1. 《乔布斯传》英文原著重点词汇笔记(五)【 chapter three 】
  2. 天龙客户端大致的结构划分和功能描述
  3. JCcreator 4.5 注册码
  4. Springboot+vue中小企业合同管理系统
  5. ​我在爱奇艺平台做影视剪辑,2021上半年日入100+方法!【覃小龙课堂】
  6. 全国计算机一级选择题考试范围,全国计算机一级考试试题选择题
  7. moonseo怎么样?--致我逝去的3年seo青春!
  8. 浮动按钮FloatingActionButton
  9. 7、最小生成树,克鲁斯卡尔(Kruskal)算法
  10. 编辑器 Typora 开始收费,开源免费的 MarkText 火了:一周剧增 2k+star