排序:
默认
按更新时间
按访问量

CCF认证历年真题 满分代码

目标是集齐所有CCF认证试题的满分代码!每次考试出题一般规律:第一题:水题(稍微有些编程经验就可以写)第二题:小模拟(处理比较简单的问题,掌握C++STL很有帮助)第三题:大模拟(处理复杂的问题,一般涉及文本处理,需要熟练掌握C++STL并且细心)第四题:算法题(难度一般,重点考图论算法和动态规划...

2018-02-21 21:56:18

阅读数:6505

评论数:0

HDU-4578 Transformation

线段树多种更新+多种查询三种更新需要三个懒惰标记保存,三种懒惰标记会相互影响,处理比较复杂对于三种查询用三个数组保存值,更新时需要计算一下公式这道题满满的都是细心操作啊,写起来很繁琐,我WA无数次后才过了,数组最好都开long long,防止溢出错误#include<iost...

2018-06-22 22:50:33

阅读数:2

评论数:0

HDU-3974 Assign the task

直接用f数组保存每个点的父节点,vis数组保存这个点的更新时间,num数组保存任务每次更新时只需要更新一个点的num和vis再查询的时候通过vis将这个点和它所有上级的num更新为最新,然后输出num这样做如果碰到极端数据时间复杂度很高,不过平均来说还是O(mlogn),轻松AC#include&...

2018-06-05 21:09:07

阅读数:11

评论数:0

POJ-3264 Balanced Lineup

给出一个数组,查询其l~r区间最大值和最小值的差用线段树维护每个区间最大最小值就可以了#include<iostream> #include<cstdio> #include<cstrin...

2018-06-05 20:19:17

阅读数:4

评论数:0

HDU-1540 Tunnel Warfare

所有村庄排成一条直线,相邻的两两连通,如果一个村庄被摧毁,左右两个区间就不连通了查询时要查询一个村庄能连通的村庄的数量(包括自己),可以改为查询离它最近的两个被摧毁的村庄,这样相减就是答案所以用线段树,标记每个区间是否有断点,查询时只查找有断点的区间,还可以优化剪枝#include&amp...

2018-06-05 09:29:57

阅读数:6

评论数:0

HDU-4027 Can you answer these queries?

使用线段树保存区间和来做首先因为更新是对区间内每个数字进行开方,所以不能区间更新了,每次需要计算全部的数之后发现在数据范围内的数,差不多开方6次左右就会变成1,之后就不会再变想到可以做一个标记,如果此区间下所有数字都为1,就为true,否则为false这样碰到标记为true的就不用继续更新了有个坑...

2018-06-04 22:50:43

阅读数:4

评论数:0

ZOJ-1610 Count the Colors

给一个一维区间涂色,每次覆盖一个区间,问输出每种能看到的颜色和它分为几个区间(按字典序) 有个坑点是输入数据是按点来,我们要做的是覆盖和查询两点之间的连线,统一将左+1就可以按寻常处理了这道题需要快速区间覆盖和查询,可以用线段树来做,实际上暴力模拟也没问题可以过#include&l...

2018-06-04 20:04:01

阅读数:5

评论数:0

HDU-1698 Just a Hook

简单的线段树实现每个节点维护区间和,最后输出根节点sum就可以了#include<iostream> #include<cstdio> #include<cstring&g...

2018-05-30 19:31:15

阅读数:11

评论数:0

HDU-4507 吉哥系列故事——恨7不成妻

数位DP,一般的是让人求某种数字的个数,这个要求求这些数字的平方和刚开始我以为递归到结尾把数字平方加起来就好了,结果是WA(数位DP并不能遍历每一个数字,所以这样加肯定是错的)这样的话需要用到一些公式,帮助求平方和:https://www.cnblogs.com/kuangbin/archive/...

2018-05-22 19:25:33

阅读数:9

评论数:0

SPOJ-BALNUM Balanced Numbers

数位DP+状态压缩balance number 定义为数位中每种偶数出现奇数次,奇数出现偶数次(注意是每个数分开算)0~9每个数可以有三种状态:没出现过,出现过奇数次,出现过偶数次可以用十位三进制数完全表示,数组为d[len][num],len为长度,num为状态#include&...

2018-05-17 09:18:07

阅读数:14

评论数:0

HDU-4734 F(x)

数位DP,d[len][num]保存len位小于等于num的数的个数#include<iostream> #include<cstdio> #include<cstring&amp...

2018-05-15 22:27:14

阅读数:7

评论数:0

HDU-3652 B-number

数位DP,d[len][num][f]保存wqb-number的个数len是数位长度,num是数字%13得到的,f表示三种状态f==0时代表前一位不为1且数字中没有13,f==1代表前一位为1且没有13,f==2代表出现了13#include<iostream&amp...

2018-05-14 18:25:11

阅读数:13

评论数:0

HDU-3709 Balanced Number

数位DP对于一个数,我们可以枚举它的中心点,判断它是不是一个平衡数所以在数位DP一开始时就加一个个条件,以第m位为中心点d[m][len][f]代表中心为m,长度为len,左边减右边差值+1800为f的数个数最后判断下f是否为修正值1800这样DP会重复一些0,最后要减掉#include&...

2018-05-13 10:15:34

阅读数:16

评论数:1

POJ-3252 Round Numbers

数位DP讲一个数写成二进制,如果0的个数>=1的个数,那么这就是一个round number问两个数之间有多少个round number直接按二进制来数位DP,d[len][num_0][num_1]保存len位,0个数为num_0,1个数为num_1的round numbe...

2018-05-11 09:03:48

阅读数:7

评论数:0

HDU-3555 Bomb

数位DPd[len][num] 表示长度为len+1,前一位是否为4(num==1或0)的数到0之间有多少个符合条件的数(不含49)最后用n减去结果就是答案#include<iostream> #include<cstdio&...

2018-05-10 16:58:56

阅读数:6

评论数:0

HDU-4352 XHXJ's LIS

数位DP+状态压缩d[len][num][K]保存len位数,状态为num,且LIS长度为K的数字个数num为最长上升子序列的二进制压缩,大小为1024如果当前LIS为 2 5 8 9,i为3,LIS可更新为 2 3 8 9(从i位置向后寻找第一个比它大的替换,没有就直接加到后边)注意,这里的nu...

2018-05-10 09:08:05

阅读数:5

评论数:0

HDU-2089 不要62

这道题直接暴力+打表就可以过,也是一道数位DP入门题//暴力打表#include<iostream> #include<cstdio> #include<cstring&g...

2018-05-06 21:36:38

阅读数:8

评论数:0

Codeforces-55D Beautiful numbers

数位DP第一题#include<iostream> #include<cstdio> #include<cstring> #include<al...

2018-04-24 16:22:56

阅读数:8

评论数:0

HDU-2476 String painter

挺有难度的一道题,区间DP,我参考别人的代码,自己加了写注释#include<iostream> #include<cstdio> #include<cstring>...

2018-04-16 10:58:06

阅读数:17

评论数:0

HDU-4823 You Are the One

区间DP,有n个屌丝要出场,每个屌丝有个屌丝值a[i],他们最终屌丝值为(k-1)*a[i],(k为出场次序)屌丝是按顺序站好的,而且要按顺序出场,有一个栈堆可以暂时让屌丝进去以改变出场顺序问这样所有屌丝的总屌丝值最少是多少用d[l][r][k]存储最少值,l~r区间,k为0代表在队伍中,k为1代...

2018-04-15 17:33:32

阅读数:9

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭