我不讨论蓝桥杯的好坏,也不吹捧acm,就从一道题目来看两者的区别。当然我并不是用前者的一道简单题和World final的真题来进行比较,不然就没有意义了,这篇博客的意义就在于前者和后者思考问题思路的不同之处。
废话说完,看题。蓝桥杯某题:一副扑克牌,去掉大小王,剩52张牌,均分给4人,每人13张牌,若不计花色,则这13张牌的可能序列有多少种?-->这原本是一道经典的多重集组合问题,用dp求解(秋叶拓哉--挑战程序竞赛),但还是从头开始看吧。
拿到题目,其一:固定的输入数据,其二:没有指明运行效率。于是诞生了第一种想法,暴力+for循环。
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
using namespace std;
int main()
{
int i,t,ans=0,a[20];
for (a[0]=0;a[0]<5;a[0]++)
for (a[1]=0;a[1]<5;a[1]++)
for (a[2]=0;a[2]<5;a[2]++)
for (a[3]=0;a[3]<5;a[3]++)
for (a[4]=0;a[4]<5;a[4]++)
for (a[5]=0;a[5]<5;a[5]++)
for (a[6]=0;a[6]<5;a[6]+