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

网站建设公司价百度搜索竞价

网站建设公司价,百度搜索竞价,做外贸批发的网站有哪些,招远 两学一做 网站C. Almost Increasing Subsequence 题目: 思路: 前缀和立大功 一个很显然的想法,我们可以拆开整个序列来看看,我们将序列分为 递减子序列 和 剩余情况,那么对于一个递减子序列,其前后要么就是其余情况&am…

C. Almost Increasing Subsequence

题目:

思路:

前缀和立大功

 一个很显然的想法,我们可以拆开整个序列来看看,我们将序列分为 递减子序列 和 剩余情况,那么对于一个递减子序列,其前后要么就是其余情况,要么就是没有元素

那么贪心的想,对于一个递减子序列,我们能选多少个元素呢?显然最多选两个,所以我们可以考虑前缀和来做

我们定义 sum[i] 为前 i 个元素中有多少个元素是 x >= y >= z 的

那么答案就是 len - (sum[r] - sum[l+1])

为什么是这个呢?由于 sum[i] 和 a[i-1] a[i-2] 有关,但是对于现在来说我们最多只能选 a[i],不能往前选,那么为了限制区间,我们就要选 sum[i+2] 这样就和 a[i+1] a[i] 有关了,但是还要记得我们要减去的应该是 i+2 前面的 (因为要包括 i),所以要减去 sum[l + 1] 而不是 sum[l + 2] (类比正常前缀和)

代码:

#include <iostream>
#include <algorithm>
#include<cstring>
#include<cctype>
#include<string>
#include <set>
#include <vector>
#include <cmath>
#include <queue>
#include <unordered_set>
#include <map>
#include <unordered_map>
#include <stack>
#include <memory>
using namespace std;
#define int long long
#define yes cout << "Yes\n"
#define no cout << "No\n"void solve()
{int n, q;cin >> n >> q;vector<int> a(n+1,0);for (int i = 1; i <= n; i++){cin >> a[i];}vector<int> sum(n + 2, 0);for (int i = 3; i <= n; i++){sum[i] = sum[i - 1];if (a[i-2] >= a[i-1] && a[i-1] >= a[i]){sum[i]++;}}for (int i = 0; i < q; i++){int l, r;cin >> l >> r;int len = r - l + 1;if (len < 3){cout << len << endl;continue;}cout << len - (sum[r] - sum[l + 1]) << endl;}
}signed main()
{cin.tie(0)->sync_with_stdio(false);int t = 1;while (t--){solve();}return 0;
}

D. Fish Graph

题目:

思路:

无向图找环,得开一篇学学

很简单的一题,只要你会找环

题目化简一下就是找到一个环,且满足这个环上至少有一点连接了2个除环上点以外的点

由于 n 和 m 都很小,那么直接暴力找即可

具体的我们可以枚举那个特殊点,这个特殊点满足度大于等于 4,然后模拟即可 

代码:

#include <iostream>
#include <algorithm>
#include<cstring>
#include<cctype>
#include<string>
#include <set>
#include <vector>
#include <cmath>
#include <queue>
#include <unordered_set>
#include <map>
#include <unordered_map>
#include <stack>
#include <memory>
using namespace std;
#define int long long
#define yes cout << "Yes\n"
#define no cout << "No\n"void solve()
{int n, m;cin >> n >> m;vector<vector<int>> g(n + 1);for (int i = 0; i < m; i++){int u, v;cin >> u >> v;g[u].push_back(v);g[v].push_back(u);}int flag = 0;vector<int> vis(n + 1, 0),col(n+1,0),p;auto dfs = [&](auto self, int fa, int se, int root) -> void {if (flag) return;vis[se] = 1;p.push_back(se);for (auto& son : g[se]){if (flag)return;if (fa == son) continue;if (son == root && fa != root){for (int i = 1; i <= n; i++){col[i] = 0;}for (auto & pi : p){col[pi] = 1;}int excnt = 0;for (auto& next : g[root]){if (col[next] != 1)excnt++;if (excnt >= 2)break;}if (excnt < 2){continue;}yes;cout << p.size() + 2 << endl;for (int i = p.size() - 1; i >= 1; i--){cout << p[i] << " " << p[i - 1] << endl;}cout << root << " " << se << endl;excnt = 0;for (auto& next : g[root]){if (col[next] != 1)excnt++, cout << root << " " << next << endl;if (excnt >= 2)break;}flag = 1;return;}if(vis[son] != 1)self(self, se, son, root);}p.pop_back();};for (int i = 1; !flag && i <= n; i++){if (g[i].size() < 4){continue;}  for (int j = 1; j <= n; j++){vis[j] = 0;}p.clear();dfs(dfs, 0, i, i);}if (!flag)no;
}signed main()
{cin.tie(0)->sync_with_stdio(false);int t = 1;cin >> t;while (t--){solve();}return 0;
}

http://www.dtcms.com/wzjs/220274.html

相关文章:

  • 行业网站排名陕西新站seo
  • 网站大小多少合适it培训机构排名及学费
  • 成都网站制作成都网站制作站长之家产品介绍
  • 深圳网站制作哪家便宜如何创建网站的快捷方式
  • 免费网站奖励自己游戏百度广告大全
  • 网站开发技术教程国外搜索引擎大全
  • php网站开发师条件百度seo软件优化
  • 上海做网站的公世界十大网站排名
  • 惠州外包网站建设搜狗收录提交
  • 番禺网站建设多少钱网站收录情况
  • 凤山网站seo千锋教育培训机构学费
  • 深圳建站公司兴田德润官网多少惠州seo博客
  • php做网站参考文献seo推广岗位职责
  • 南京环力建设有限公司网站优化营商环境工作总结
  • 网站更换服务器360网站推广怎么做
  • 建设银行宁波分行招聘网站免费网站推广
  • wordpress 搭建网站接广告的平台
  • 自己做免费的网站吗收录查询站长工具
  • 免费企业网络推广网站站长工具备案查询
  • 聊城公司网站设计上海网站推广服务公司
  • 中英文网站建设国外seo比较好的博客网站
  • 自己的服务器如何做网站seo搜索引擎优化案例
  • 企业新网站seo推广如何做网站 新手 个人 教程
  • 哈尔滨建设工程造价信息网seo公司 上海
  • 哈尔滨网站建设b2b电商网站有哪些
  • 门户网站建设与管理重庆seo搜索引擎优化优与略
  • 咖啡店网站首页怎么做怎么做一个自己的网站
  • 建设银行官方网站认证sem推广软件哪家好
  • 深圳的网站建设外贸网站免费建站
  • 自己做网站要会什么软件下载在线seo优化工具