摘要:
题意 给出散列表长TSize和欲插入的元素,将这些元素按读入的顺序插入散列表中,其中散列函数为H(key) = key % TSize,解决冲突采用只往正向增加的二次探查法(即二次方探查法)。 另外,如果题目给出的TSize不是素数,那么需要将TSize重新赋值为第一个比TSize大的素数再进行元素 阅读全文
摘要:
水~。 const int N=1e5+10; int primes[N],cnt; bool vis[N]; int n; void init(int n) { for(int i=2;i<=n;i++) if(!vis[i]) { primes[cnt++]=i; for(int j=i;j<= 阅读全文
摘要:
题意 给出n个分数,求分数的和。分数前面可能有负号。若答案为假分数,则要按照带分数的形式输出;整数则按整数输出;否则按真分数输出。 注意点 注意最后输出时,需要按整数、带分数、真分数的情况分类处理。 注意最终结果为0的处理。 必须在每一步加法后都进行约分,如果等全部加完后才约分,则会溢出。 计算最大 阅读全文
摘要:
模拟题~。 题意 N个人排成K排来照相,规则如下: (1) 除了最后一排(个子最高的那排)外,其余所有排的人数均为N/K (向下取整)。, (2) 后排所有人的身高都大于前排所有人的身高。 (3) 对每一排来说,最高的人站在中间;在此基础上,该排的其他人按照左右交替的方式排在中间的人的两侧,例如中间 阅读全文
摘要:
状态表示: \(f[len][cnt]\):当前为len位,已经统计的$0$的个数为cnt,不计前导$0$。 注意点: 由于前导$0$标识符lead的存在,如果左边界为$0$需要作加一处理。 LL f[15][15]; int a[15]; LL dfs(int len,int cnt,bool l 阅读全文
摘要:
本题求一个数包含49的个数,典型数位DP问题。 状态表示:\(f[len][state]\):当前为第len位,当前已统计的数字的状态为state。 其中,state有$0,1,2$三种值: state == 1,表示上一位为4 state == 2,表示高位已存在49 state == 0,其他情 阅读全文
摘要:
数位DP模板题。 状态表示: \(f[len][cnt]\):表示当前为len位,且当前已统计的$1$的个数为cnt个。 注意点: 一开始把$f$数组表示成一维了,实际上搜索时每层的状态是个三维向量$(len,cnt,limit)$,limit可以不记录在数组中,但len和cnt是一定要记录在数组当 阅读全文