当前位置: 首页 > 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/58606.html

相关文章:

  • 马鞍山网站设计价格seo搜索引擎优化是什么意思
  • 如何做微信朋友圈网站抖音seo排名系统
  • 个人买卖网站怎么做企业网络
  • 购物商城网站建设方案最近新闻热点事件
  • 深圳办公室装修设计公司简单网站建设优化推广
  • 黄骅做网站|黄骅网站|黄骅百度优化|黄骅百度推广|黄骅微信|黄骅友情链接平台网站
  • 网站设计公司哪家关键词竞价排名
  • 塘沽做网站的公司镇海seo关键词优化费用
  • 免费建立教育网站免费浏览外国网站的软件
  • 做外贸 需要做网站吗seo研究中心好客站
  • 网站流量优化百度账号登录中心
  • 济宁哪里做网站最便宜汽车网络营销的方式有哪些
  • 行业平台网站建设网络销售怎么才能找到客户
  • wordpress网站维护页面关键词优化app
  • 网站排名靠什么化妆品推广软文
  • 网站系统升级建设合同上海比较大的优化公司
  • 个人网站做企业网站chrome浏览器官网入口
  • 网站做推广 建设哪种类型合适外链代发公司
  • 自己做网站空间aso优化分析
  • 湘西州住房和城乡建设局网站百度扫一扫识别图片
  • 个人网站趋向搜索引擎优化策略
  • 网站建设实训意见和建议免费自媒体网站
  • 自己的网站做优化怎么设置缓存windows优化大师官网
  • 住建委官网首页百度关键词seo排名优化
  • 网站做反向代理后样式加载错误品牌推广方式
  • 在线看视频网站怎么做的深圳seo优化推广公司
  • 怎么做网站编程靠谱的代运营公司
  • 网页制作公司需要什么资质站长工具seo综合查询columbu cat
  • 青海省住房城乡建设厅网站首页营销型网站的分类
  • 上饶网站制作济南seo优化公司助力排名