- 博客(14)
- 收藏
- 关注
原创 HDU 1166 敌兵布阵
经典线段树#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int n;int a[50002];struct point//构建每一个点,每一个点都有左右两个子节点{ int l,r,sum;}p[200002];void s...
2017-03-29 18:46:53 332
原创 数位DP
就那HDU3555为例,这一类就时求给定范围内的数字中满足条件的数字有多少个,这个条件可以是多种多样的,需要灵活变通,3555这道题的数字条件是4和9相连。由于总是前面引用后面的数据,所以先求后面的,所以整个数据的存储遍历都是倒着进行的。首先要打一个表,这个表只和位数有关,这个表是根据题意打的,这就是DP的核心。void Init(){ int i; memset(d
2017-03-19 16:12:13 289
原创 【LCS与LIS】HDU 1257 最少拦截系统(LIS)
求递减子序列的最小数量#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int a[30001];int dp[30001];int LIS(int n){ int i,j,k=0; dp[0]=0; for(i=0; ...
2017-03-17 21:51:43 343 1
原创 蓝桥杯algo90 出现次数最多的整数
出现次数最多的整数就没把它当作数字,当作string用map存起来。#include#include#include#include#includeusing namespace std;int main(){ int i,n; string s; map m; while(cin>>n) { m.clear();
2017-03-10 20:52:01 366
原创 蓝桥杯algo1区间k大数查询
数据量比较大,如果每次划一个区间就排一次序的话,时间一定会消耗很多,所以想一种办法只排一次序,所以把数存到另一个数组中,这个数组从大到小排一次序,原来的数组保持不变,剩下就只需要从大到小在区间中找对应的了。#include#include#includeusing namespace std;bool cmp(int a,int b){ return a>b;}int m
2017-03-09 21:56:16 269
原创 蓝桥杯ADV224 九宫格
就这么一点数据,简单加起来#include#include#includeint main(){ int i,j,a[4][4],b; memset(a,0,sizeof(a)); for(i=1; i<4; i++) { for(j=1; j<4; j++) { scanf("%d",&a[i][
2017-03-09 21:36:48 337
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人