当前位置: 首页 > news >正文

德阳建设银行招聘网站wordpress 文件不刷新

德阳建设银行招聘网站,wordpress 文件不刷新,宁波手机网站制作,wordpress文章背景音乐A(签到) - Select Three Sticks 题意: 给你一个长度为 n 的正整数序列,你可以操作任意次,每一次操作可以选择任意一个元素,把它 1 或者 - 1,问最少多少次操作可以使得序列中存在三个相同的数字以构成一个等边三角形.…

A(签到) - Select Three Sticks

题意:

给你一个长度为 n 的正整数序列,你可以操作任意次,每一次操作可以选择任意一个元素,把它 + 1 或者 - 1,问最少多少次操作可以使得序列中存在三个相同的数字以构成一个等边三角形.

思路:

先 sort 一遍,然后取 min 即可. 

参考代码:

void solve() {int n;std::cin >> n;std::vector<int> a(n);for (int i = 0; i < n; i++) {std::cin >> a[i];}std::sort(a.begin(), a.end());int min = (1 << 31) - 1;for (int i = 2; i < n; i++) {min = std::min(min, a[i] - a[i - 2]);}std::cout << min << "\n";
}

B(找规律) - Bright, Nice, Brilliant

题意:

给定一个三角形的金字塔,点亮一部分的砖块,使得每一层的砖块的亮度等于当前层(从高往低),请构造出一种解使得金字塔满足要求。一个点亮的砖块可以将光传递到下面两个砖块中,一个砖块的亮度为所有能够传递光的砖的数量。

思路:

我们找规律可以发现,只需要让最两侧,也就是金字塔的最外一层点亮,即可让所有砖块的亮度等于当前层数。 

参考代码:

void solve() {int n;std::cin >> n;for (int i = 1; i <= n; i++) {if (i == 1) {std::cout << "1\n";continue;}std::cout << "1 ";for (int j = 1; j <= i - 2; j++) {std::cout << "0\n";}std::cout << "1\n";}
}

C (贪心) - Removing Smallest Multiples

题意:

有集合 S = {1,2,⋯,n}, T,每次操作你可以选择一个 K,然后删除集合中最小且为K的倍数,代价为 K,问最少需要多少代价,能让S变成T。

思路:

贪心。从小枚举每个k,让k尽量取多次,直到遇到一个位置不能删。 

参考代码:

void solve() {int n;std::string t;std::cin >> n >> t;ll ans{};for (int i = 1; i <= n; i++) {for (int j = i; j <= n; j+=i) {if (t[j - 1] == '1') {break;}if (t[j - 1] == '0') {t[j - 1] = '2';ans += i;}}}std::cout << ans << "\n";
}

D(贪心 + 双指针) - Slime Escape

题意:

给定一个数组 a。初始位置为k,血量HP为0。每次可以向右或者向左移动。每到达一个位置,会改变HP增加当前对应位置的值,多次经过一个位置只有第一次会改变HP的值,ai可能是正或者负数,表示HP增加和减少。当HP变成负数时,你就会挂掉。问能否走出两端中的其中一端。 

思路:

贪心+双指针。两种情况是对称的,只需考虑一端出去的情况。不妨设,从右端出去。

每次向右边移动一个位置,就看看左边所有能到达的位置中,能获得的最大血量,则当前能增加的最大血量等于 max(前一个位置能增加的最大血量,当前位置能增加的血量)。

记j为左边能到达的位置,maxval为从k - 1到j中增加的最大血量,left等于a[j]到a[k - 1]的和,i为右边到达的当前位置,right为a[k]到a[i]的和。

maxval即为从k移动到i的过程中,能从左边获取得到的最大的生命值。

  • 结论1,如果i - 1能到达maxval所在的位置,则i也能到达该位置 只需在i之前先到达该位置即可。

  • 结论2,我们只需关注right非减的位置(最长非减序列),假设这些位置为ps。则maxval只有在属于ps的位置才有可能改变。如果某个位置i不在ps中,则能到达i当且仅当right + maxval >= 0且i - 1可达,我们只需关注x + 1,x+1不属于ps的情况,此时可以从x出发到达maxval所在的位置,而到达x+1时整体血量减少,不可能移动到x能到达的位置的更左端。

  • 结论3,y时ps中x的下一个位置,则x能到达的位置,y也能到达。

因此,我们可以双指针进行。i从k开始枚举,对每个i,j依据条件向左移动,同时维护maxval即可。

参考代码:

bool f(std::vector<ll> &a, int k) {ll left = 0, right = 0, maxval = 0;for (int i = k, j = k; i < a.size(); i++) {right += a[i];if (right + maxval < 0) {return false;}while (j - 1 >= 0 && left + a[j - 1] + right >= 0) {left += a[--j];maxval = std::max(maxval, left);}}return true;
}void solve() {int n, k;std::cin >> n >> k;std::vector<ll> a(n);for (int i = 0; i < n; i++) {std::cin >> a[i];}if (k == 1 || k == n || f(a, k - 1)) {std::cout << "Yes\n";return;}std::reverse(a.begin(), a.end());std::cout << (f(a, n - k) ? "Yes" : "No") << "\n";
}
http://www.yayakq.cn/news/734768/

相关文章:

  • 去掉博客网站链接后面的wordpress潍坊 网站建设
  • 洛阳霞光网络建站公司wordpress加密修改密码
  • 做网站需要购买地域名吗无极电影网评
  • 东莞网站建设市场分析长兴企业网站开发
  • 做国外零售做什么网站qq刷赞网站如何做分站
  • 视频网站开发周期vps搭建wordpress
  • 福州高端网站建设公司开电商网站需要多少钱
  • 网站建设开发的流程成都十大营销策划公司
  • 霸州建网站企业网站建设报价明细表
  • 什么样 个人网站 备案建设工程项目管理网站
  • 网站建设数据库模板单页展示网站
  • 做网站有必要网站优化外包服务
  • 网站片头动画用什么软件做的新东方英语线下培训学校
  • 襄阳网站建设楚翼网络wordpress实时获取qq资料
  • 福建龙岩网站制作公司做网站的公司违约怎么处理
  • 多个域名 指向同一个网站wordpress 分页文章数
  • 马鞍山专业网站制作公司龙岩天宫山住宿
  • 石家庄做网站汉狮网络济南网站制作服务
  • 国内网站做国外服务器wordpress后台登入
  • 微信上做任务让你注册彩票网站王也最后结局
  • 怎么在网站标头做图标wordpress 256m内存
  • 在哪个网站做外贸生意好博山区住房和城乡建设局网站
  • 为什么找别人做网站购物网站ppt怎么做
  • 威海哪家网站做的好蚂蚁网站建设
  • 网站首页制作没有基础学平面设计难吗
  • 网站登陆模板邢台网站建设优化
  • 在游戏网站做中介合法dedecms导入网站模板
  • 常见的手机网站做片头片尾比较好的网站
  • 深圳网站设计师wordpress 宠物模板
  • 重庆网站seo建设湛江建站公司模板