@codejan
2017-04-18T06:28:04.000000Z
字数 1210
阅读 596
acm
2017官方模拟赛
2016年题解
2015年题解
明天就要蓝桥杯了,然而好久没敲代码了,争取能够免费北京游吧,看下往年情况做出7道题就差不多稳了.
主要看了14,15,16三年的题目,知识点主要集中在数学,暴力,dp,除了最后一题,其他的都可以争取做出来.
注意到蓝桥杯大题是分点给分的,不会做也可以尽量骗分.
同时要注意细心!中途没有测试的机会,只能自己多造样例,用心检查.
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
char s[5005];
short dp[5005][5005],n;
int dfs(int l, int r){
if(dp[l][r]) return dp[l][r];
if(l >= r) return 0;
if(s[l]==s[r]) return dp[l][r] = dfs(l+1,r-1);
else return dp[l][r]=min(dfs(l+1,r), dfs(l,r-1))+1;
}
int main(){
while(scanf("%d", &n)!= EOF){
memset(dp,0,sizeof(dp));
scanf("%s", s+1);
dfs(1,n);
cout <<dp[1][n]<<endl;
}
}
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int knt = 0;
void dfs(int st, int sum, int cur){
if(sum==13) {knt++; return;}
if(st > 13) return;
if(cur<4)dfs(st, sum+1, cur+1);
dfs(st+1,sum,0);
}
int main(){
dfs(1,0,0);
cout<<knt<<endl;
return 0;
}
next_permutation(首地址,末地址);
把指定区域内的排列按照字典序变为下一个排列.
char s[100]="abcdefghijklmnopq";
next_permutation(s,s+17);
cout<<s<<endl;
输出为abcdefghijklmnoqp