自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 單子の错题:集训错题整理

1.一些数字可以颠倒过来看,例如 00、11、88 颠倒过来还是本身,66 颠倒过来是 99,99 颠倒过来看还是 66,其他数字颠倒过来都不构成数字。类似的,一些多位数也可以颠倒过来看,比如 106106 颠倒过来是 901901。假设某个城市的车牌只由 55 位数字组成,每一位都可以取 00 到 99。请问这个城市最多有多少个车牌倒过来恰好还是原来的车牌?( )2.#include using namespace std;const int maxn = 10000;int n;int a[

2020-10-08 14:20:11 1135

原创 NOIP2018普及组错题整理

给定一个含 NN 个不相同数字的数组,在最坏情况下,找出其中最大或最小的数,至少需要 N−1N−1 次比较操作。则最坏情况下,在该数组中同时找最大与最小的数至少需要( )次比较操作。(⌈⌉⌈⌉ 表示向上取整,⌊⌋⌊⌋表示向下取整)。A. 2N−22N−2B. 2N−42N−4C. ⌊3N/2⌋−2⌊3N/2⌋−2D. ⌈3N/2⌉−2⌈3N/2⌉−2在NN 个不相同数字的数组同时查找最大值与最小值的算法思想如下:对NN个数字两两比较,再将较大的数字与最大值打擂台,较小的数字与最小值打擂台。 最坏

2020-08-21 10:36:36 1776

原创 NOIP2017错题

(切割绳子)有 n 条绳子,每条绳子的长度已知且均为正整数。绳子可以以任意正整数长度切割,但不可以连接。现在要从这些绳子中切割出 m 条长度相同的绳段,求绳段的最大长度是多少。(第一、二空 2.5 分,其余 3 分)输入:第一行是一个不超过 100 的正整数 n,第二行是 n 个不超过 106 的正整数,表示每条绳子的长度,第三行是一个不超过 108 的正整数 m。输出:绳段的最大长度,若无法切割,输出 Failed。#include <iostream>using namespace

2020-08-20 15:40:04 478

原创 NOIP2016普及组初赛题目整理

完善程序(郊游活动)有 n 名同学参加学校组织的郊游活动,已知学校给这 n 名同学的郊游总经费为 A 元,与此同时第 i 位同学自己携带了 Mi 元。为了方便郊游,活动地点提供 B(≥n)辆自行车供人租用,租用第 j 辆自行车的价格为 Cj元,每位同学可以使用自己携带的钱或者学校的郊游经费,为了方便账务管理,每位同学只能为自己租用自行车,且不会借钱给他人,他们想知道最多有多少位同学能够租用到自行车。(第四、五空 2.5 分,其余 3 分)本题采用二分法。对于区间[l, r],我们取中间点 mid 并判断

2020-08-20 14:12:33 755

原创 NOIP2014、2015普及组初赛难点整理

#include <iostream>using namespace std;const int SIZE = 100;int matrix[SIZE + 1][SIZE + 1];int rowsum[SIZE + 1][SIZE + 1]; //rowsum[i][j]记录第 i 行前 j 个数的和int m, n, i, j, first, last, area, ans;int main(){ cin >> m >> n; for(i

2020-08-19 15:04:49 359

原创 單子の错题本:NOIP2012普及组初赛难点整理

NOIP2012普及组初赛难点整理1.如果平面上任取 nn 个整点(横纵坐标都是整数),其中一定存在两个点,它们连线的中点也是整点,那么 nn 至少是__5__。分析:构造法。想象一下纵横交错的棋盘,每个交汇点的横纵坐标都是整数。如果存在三点共线(横向、纵向、斜向),那么一定存在其中两个点连线的中点也是整点。如下图所示:要保证一定存在两个点、它们连线的中点也是整点,那么需要构造出最坏情况下至多选多少个点、不在一条直线上,此时再添加任意一个点,则一定出现3点一线。构造方法如下:在 NOI 期间,主办

2020-08-18 15:55:12 1278 1

原创 NOIP2011普及组初赛难点整理

NOIP2011普及组初赛难点整理#include<iostream>#include<string>using namespace std;int main(void) { string map = "2223334445556667778889999"; string tel; int i; cin >> tel; for (i = 0; i < tel.length( ); i++) if ((t

2020-08-17 15:48:06 243

原创 NOIP2010普及组初赛试题错题整理

NOIP2010普及组初赛试题错题整理11.一个字长为8位的整数的补码是11111001,则它的原码是( D )。A.00000111B.01111001C.11111001D.10000111分析:二进制中负数才有补码,将补码-1再按位取反,注意第一位保留1.队列快照是指在某一时刻队列中的元素组成的有序序列。例如,当元素1、2、3入队,元素1出队后,此刻的队列快照是"2 3"。当元素2、3也出队后,队列快照是"",即为空。现有3个正整数元素依次入队、出队。已知它们的和为8,则共有___

2020-08-17 13:15:26 1248 1

原创 單子の集训题目整理

基础算法排序快速排序快速排序.第k个数.归并排序归并排序.逆序对的数量.二分数的三次方根.数的范围.高精度高精度加法.高精度减法.前缀和与差分前缀和.子矩阵的和.差分.差分矩阵.双指针算法最长连续不重复子序列.数组元素目标和.link.位运算2进制中一的个数.区间合并区间合并.搜索广度优先搜索洪水填充池塘计数.城堡问题.山峰和山谷.最短路问题迷宫问题.武士风度的牛.抓住那头牛.最小步数模型8数码.多元BFS矩阵距离.有向图的拓

2020-08-14 15:07:37 123

原创 單子の题解:欧拉公式

單子の题解:欧拉公式题目分析代码实现题目分析int phi(int x){ int res = x; for (int i = 2; i <= x / i; i ++ ) if (x % i == 0) { res = res / i * (i - 1); while (x % i == 0) x /= i; } if (x > 1) res = res / x * (

2020-08-13 15:26:08 134

原创 單子の题解:约数之和

單子の题解:约数之和题目分析代码实现题目分析N 的约数之和 res =(p1^0 + p1^1 + p1^2 + … + p1^a1) × (p2^0 + p2^1 + p2^2 + … + p2^a2) × … × (pn^0 + pn^1 + pn^2 + … + pn^an)t[1] = 1 + p^1t[2] = 1 + (1 + p) * p = 1 + p^1 + p^2t[k - 1] = 1 + p^1 + p^2 + … + p^{k-1}t[k] = 1 + t[k-1

2020-08-13 15:24:05 128

原创 單子の题解:约数个数

單子の题解:约数个数题目分析代码实现题目分析那么我们就可以得到:如果 N = p1^c1 * p2^c2 * … *pk^ck约数个数: (c1 + 1) * (c2 + 1) * … * (ck + 1)代码实现#include <bits/stdc++.h>using namespace std;const int mod=1e9+7;typedef long long LL;int main(){int n;cin>>n;map<int,

2020-08-13 15:21:42 131

原创 單子の题解:直线石子合并

單子の题解:直线石子合并题目描述题目核心代码实现题目描述古娜拉黑暗之神.题目核心状态表示:dp[i][j]表示从i到j的合并最小代价列举每个小区间i,j的代价左右两堆合成的最小代价=d1[i][j]=min(d1[i][j],d1[i][k]+d1[k+1][j]+sum[j]-sum[i-1]);d2[i][j]=max(d2[i][j],d2[i][k]+d2[k+1][j]+sum[j]-sum[i-1]);代码实现#include<bits/stdc++.h>us

2020-08-12 15:48:46 135

原创 單子の题解:最长不下降子序列

單子の题解:最长不下降子序列题目描述状态压缩表示代码实现题目描述妈咪妈咪哄.状态压缩表示dp[i] = max{1,dp[j]+1} (j = 1,2,…,i-1 && A[j] < A[i])dp[i]表示到i个字符之前的最长不下降子序列的长度。a[j]<=a[i]保证不下降代码实现极客少年 首页 问题 练习&比赛 状态 排名 关于 AcceptedTime: 43ms Memory: 1MB Lang: C++ Author: jojo

2020-08-12 15:29:34 125

原创 單子の题解:多重背包二进制优化

單子の题解:多重背包二进制优化题目描述题目分析代码实现题目描述妈咪妈咪哄.题目分析多重背包的一般性做法是将N个I物品分成N种i物品,一样只能拿一个,把他转化成01背包问题解决优化之处在于我们将N转化为二进制来表示,这样可以高效的压缩数据并且随拿随用for(int j=1;j<=s;j=j*2){ v[++k]=j*vx; w[k]=j*wx; s-=j;}if(s>0){ v[++k]=s*vx; w[k]=s*wx;}代码实现

2020-08-12 15:22:46 91

原创 單子の题解:最短编辑距离

單子の题解:最短编辑距离题目描述题目分析代码实现题目描述妈咪妈咪哄.题目分析状态表示用dp[i][j]表示表示将字符串A中前i个字符编辑成字符串B中前j个字符所要进行的最少操作删除——dp[i-1][j]+1插入——dp[i][j-1]+1替换:在替换过程中有两种情况 目标字符与替换字符相同与不同两种情况if(a[i]==b[j]) dp[i][j]=min(dp[i][j],dp[i-1][j-1]); else dp[i][j]=min(dp[i][j],dp[i-1][j-1]+1

2020-08-12 15:13:39 88

原创 單子の题解:完全背包问题

这里写目录标题题目描述题目分析代码实现优化实现题目描述传送门妈咪妈咪哄.题目分析将01背包中的f[i][j]=max(f[i][j],f[i-1][j-v[i]]+w[i])改为f[i][j]=max(f[i][j],f[i][j-k*v[i]]+k*w[i])这是因为01背包的每个物品只能选择一个,因此选择放第i件物品就意味着必须转移到f[i-1][j-v[i]]+w[i]这个状态;但是完全背包问题不同,完全背包如果选择放第i件物品之后是转移到f[i][j-k*v[i]]+k*w[i],这是因

2020-08-12 14:46:33 137

原创 單子の题解:01背包问题

單子の题解:01背包问题1.题目描述2.题目分析3.代码实现状态转移完整代码代码优化代码实现(优化)1.题目描述传送门妈咪妈咪哄2.题目分析由题可得,要求我们在有限的空间内装入更多(价值)的物品。其中每个物品有且只有一个,只存在装与不装两种条件。3.代码实现用n来记录一共有多少件物品,mx来表示背包总空间用v[]来存储每一个物品需要的空间用w[]来存储每一个物品代表的价值用i来表示我们当前进行到第i个物品,j表示剩余空间用f[ ][ ]来存储我们每一步的最优解,f[i][j]即为前i个物

2020-08-12 14:23:40 249 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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