nyist_acm 个人积分赛1(部分题解会补充)

Mirrored String II

 看到题解说是马拉车算法,我赛时并没想到(好吧其实我是比赛完才知道有马拉车这个算法)

因为字符串的长度只有1000,直接暴力跑其实就可以了,但是要注意的是;回文串有俩种形式,一种是aba的另一种是baab的形式,这是需要注意的地方

//#pragma GCC optimize(3)  //O2优化开启
#include<iostream>
#include<cmath>
#include<cstring>
#include<cstdio>
#include<stack>
#include<string>
#include<algorithm>
//#include<unordered_map>
#include<map>
#include<bitset>
#include<cstring>
//#include <unordered_set>
//#include<priority_queue>
#include<queue>
#include<deque>
#include<set>
#include<stdlib.h>
#define dbug cout<<"*****hear*****"<<endl;
#define rep(a,b,c) for(ll a=b;a<=c;a++)
#define per(a,b,c) for(ll a=b;a>=c;a--)
#define no cout<<"No"<<endl;
#define yes cout<<"Yes"<<endl;
//#define endl "\n"//交互题一定要关!!!!!!!!!
#define lowbit(x) (x&-x)
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
//priority_queue<int,vector<int>,greater<int> >q;
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<ll, ll> PII;
typedef pair<long double, long double> PDD;
ll  INF = 0x3f3f3f3f;
//const ll LINF=LLONG_MAX;
// int get_len(int x1,int y1,int x2,int y2)
// {
//   return (x2-x1)*(x2-x1) + (y2-y1)*(y2-y1);
// }
const ll N = 2e5 + 10;
const ll mod1 = 998244353;
const ll mod2 = 1e9 + 7;
const ll hash_num = 3e9 + 9;
ll n, m, ca;
ll arr[N], brr[N], crr[N], drr[N];
//ll h[N],ne[N],e[N],w[N],book[N],idx;
// void add(ll a, ll b , ll c)
// {
//   e[idx] = b, w[idx] = c,ne[idx] = h[a], h[a] =idx ++ ; 
// }
vector<ll>ve[N];
bool check(char x)
{if (x=='A'||x == 'H' || x == 'I' || x == 'M' || x == 'O' || x == 'T' || x == 'U' || x == 'V' || x == 'W' || x == 'X' || x == 'Y')return 1;return 0;
}
void solve()
{string s;cin >> s;ll len = s.size();rep(i, 0, len){arr[i] = 0, brr[i] = 0;}rep(i, 0, len - 1){if (check(s[i])){arr[i] = 1;ll l = i - 1;ll r = i + 1;while (l >= 0 && r < len){if (check(s[l]) && s[r] == s[l]){l--;r++;arr[i] += 2;}else{break;}}if (check(s[i+1] ) && s[i] == s[i + 1]){brr[i] = 2;ll l = i - 1;ll r = i + 2;while (l >= 0 && r < len){if (check(s[l]) && s[r] == s[l]){l--;r++;brr[i] += 2;}else{break;}}}}}sort(arr, arr + len);sort(brr, brr + len);cout << max(arr[len - 1], brr[len - 1]) << endl;;
}int main()
{IOS;ll _;_ = 1;    //scanf("%lld",&_);cin >> _;ca = 1;while (_--){solve();ca++;}return 0;
}

Competitive Seagulls

这是一个博弈(废话)大家叫这种博弈为对称博弈

本题对称 博弈的特性如下:

  1. 对于给定的长度n我们可以先取中间的一段,使左右两边的白色方格一样多,
  2. 这样后手取其中一边,我们就可以在另一边取和他相同的长度,
  3. 这样我们是必赢的,因为不管奇数还是偶数个,我们可以取2或3使左右两边相等。
  4. 但是对于2和3不同,只有这两种情况我们是先手必输的。
void solve()
{cin >> n;if(n==2 || n==3){cout << "second" << endl;}else{cout << "first" << endl;}
}

 Hey JUDgE

每次输入的长度只有7个,而比赛需要的题目数量是5,所以最多只能组合俩次题目,又因为题目不能重复利用,新得到的题目也无法再次组合,所以就直接枚举就可以找到答案

//#pragma GCC optimize(3)  //O2优化开启
#include<iostream>
#include<cmath>
#include<cstring>
#include<cstdio>
#include<stack>
#include<string>
#include<algorithm>
//#include<unordered_map>
#include<map>
#include<bitset>
#include<cstring>
//#include <unordered_set>
//#include<priority_queue>
#include<queue>
#include<deque>
#include<set>
#include<stdlib.h>
#define dbug cout<<"*****hear*****"<<endl;
#define rep(a,b,c) for(ll a=b;a<=c;a++)
#define per(a,b,c) for(ll a=b;a>=c;a--)
#define no cout<<"No"<<endl;
#define yes cout<<"Yes"<<endl;
//#define endl "\n"//交互题一定要关!!!!!!!!!
#define lowbit(x) (x&-x)
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
//priority_queue<int,vector<int>,greater<int> >q;
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<ll, ll> PII;
typedef pair<long double, long double> PDD;
ll  INF = 0x3f3f3f3f;
//const ll LINF=LLONG_MAX;
// int get_len(int x1,int y1,int x2,int y2)
// {
//   return (x2-x1)*(x2-x1) + (y2-y1)*(y2-y1);
// }
const ll N = 2e5 + 10;
const ll mod1 = 998244353;
const ll mod2 = 1e9 + 7;
const ll hash_num = 3e9 + 9;
ll n, m, ca;
ll arr[N], brr[N], crr[N], drr[N];
//ll h[N],ne[N],e[N],w[N],book[N],idx;
// void add(ll a, ll b , ll c)
// {
//   e[idx] = b, w[idx] = c,ne[idx] = h[a], h[a] =idx ++ ; 
// }
ll book[N];
ll get_hard(char a)
{brr['A'] = 1;brr['B'] = 2;brr['C'] = 3;brr['D'] = 4;brr['E'] = 5;return brr[a];
}
void solve()
{string s;cin >> s;map<ll, ll>mp;rep(i, 0, s.size() - 1){mp[get_hard(s[i])] ++;arr[i + 1] = get_hard(s[i]);}ll num = 0;rep(i, 1, 5){// cout << arr[i] << " ";if (!mp[i])num++;}if (num == 0){cout << "YES" << endl;return;}ll xx;ll yy = 0;rep(i, 1, 7){rep(j, i + 1, 7){xx = 1;mp[arr[i]]--, mp[arr[j]]--, mp[arr[i] + arr[j]]++;rep(k, 1, 5){if (!mp[k])xx = 0;}mp[arr[i]]++, mp[arr[j]]++, mp[arr[i] + arr[j]]--;if (xx == 1)yy = 1;}}if (!yy){rep(i, 1, 7){rep(j, i + 1, 7){rep(k, 1, 7){rep(l, k + 1, 7){xx = 1;if (i == k || j == l || i == l || j == k)continue;mp[arr[i]]--, mp[arr[j]]--, mp[arr[i] + arr[j]]++;mp[arr[k]]--, mp[arr[l]]--, mp[arr[k] + arr[l]]++;rep(mm, 1, 5){if (!mp[mm])xx = 0;}mp[arr[i]]++, mp[arr[j]]++, mp[arr[i] + arr[j]]--;mp[arr[k]]++, mp[arr[l]]++, mp[arr[k] + arr[l]]--;if (xx == 1){//  cout << i << " " << j << " " << k << " " << l << endl;yy = 1;}}}}}}if (yy){cout << "YES" << endl;}else{cout << "NO" << endl;}
}int main()
{IOS;ll _;_ = 1;    //scanf("%lld",&_);cin >> _;ca = 1;while (_--){solve();ca++;}return 0;
}

Smooth Developer

很水的一个模拟,但是,诶,您没猜到吧我从开始接触到正式ac前后跨了4h。

唯一需要注意的就是所需要的函数要全部标记完之后再输出,而不是有一个输出一个

//#pragma GCC optimize(3)  //O2优化开启
#include<iostream>
#include<cmath>
#include<cstring>
#include<cstdio>
#include<stack>
#include<string>
#include<algorithm>
//#include<unordered_map>
#include<map>
#include<bitset>
#include<cstring>
//#include <unordered_set>
//#include<priority_queue>
#include<queue>
#include<deque>
#include<set>
#include<stdlib.h>
#define dbug cout<<"*****hear*****"<<endl;
#define rep(a,b,c) for(ll a=b;a<=c;a++)
#define per(a,b,c) for(ll a=b;a>=c;a--)
#define no cout<<"No"<<endl;
#define yes cout<<"Yes"<<endl;
//#define endl "\n"//交互题一定要关!!!!!!!!!
#define lowbit(x) (x&-x)
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
//priority_queue<int,vector<int>,greater<int> >q;
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<ll, ll> PII;
typedef pair<long double, long double> PDD;
ll  INF = 0x3f3f3f3f;
//const ll LINF=LLONG_MAX;
// int get_len(int x1,int y1,int x2,int y2)
// {
//   return (x2-x1)*(x2-x1) + (y2-y1)*(y2-y1);
// }
const ll N = 2e5 + 10;
const ll mod1 = 998244353;
const ll mod2 = 1e9 + 7;
const ll hash_num = 3e9 + 9;
ll n, m, ca;
ll arr[N], brr[N], crr[N], drr[N];
//ll h[N],ne[N],e[N],w[N],book[N],idx;
// void add(ll a, ll b , ll c)
// {
//   e[idx] = b, w[idx] = c,ne[idx] = h[a], h[a] =idx ++ ; 
// }
map<string, ll>mp;
vector<ll>ve[N];
char x[30], s[N][30];
ll book[N];
void dfs(ll u)
{book[u] = 1;for (auto it : ve[u]){if (book[it])continue;dfs(it);}}void solve()
{scanf("%lld%lld", &n, &m);rep(i, 1, n)ve[i].clear();mp.clear();rep(i, 1, n){scanf("%s", s[i]);mp[s[i]] = i;ll num;scanf("%lld", &num);rep(j, 1, num){scanf("%s", x);if (mp[x] != i){ve[i].push_back(mp[x]);}}}memset(book, 0, sizeof book);while (m--){scanf("%s", x);if(!book[mp[x]])dfs(mp[x]);}rep(i, 1, n){if (book[i]){printf("%s\n", s[i]);}}
}int main()
{//IOS;ll _;_ = 1;    scanf("%lld", &_);//cin >> _;ca = 1;while (_--){solve();ca++;}return 0;
}

 

ACPC Headquarters : AASTMT (Stairway to Heaven)

换个想法,我们不抓着比赛名称看,我们就抓着志愿者看,数据很小只有365,当得知一个志愿者有需要参加的比赛的时候,就遍历一遍是否有矛盾的,存在矛盾的储存下来就OK了

//#pragma GCC optimize(3)  //O2优化开启
#include<iostream>
#include<cmath>
#include<cstring>
#include<cstdio>
#include<stack>
#include<string>
#include<algorithm>
//#include<unordered_map>
#include<map>
#include<bitset>
#include<cstring>
//#include <unordered_set>
//#include<priority_queue>
#include<queue>
#include<deque>
#include<set>
#include<stdlib.h>
#define dbug cout<<"*****hear*****"<<endl;
#define rep(a,b,c) for(ll a=b;a<=c;a++)
#define per(a,b,c) for(ll a=b;a>=c;a--)
#define no cout<<"No"<<endl;
#define yes cout<<"Yes"<<endl;
//#define endl "\n"//交互题一定要关!!!!!!!!!
#define lowbit(x) (x&-x)
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
//priority_queue<int,vector<int>,greater<int> >q;
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<ll, ll> PII;
typedef pair<long double, long double> PDD;
ll  INF = 0x3f3f3f3f;
//const ll LINF=LLONG_MAX;
// int get_len(int x1,int y1,int x2,int y2)
// {
//   return (x2-x1)*(x2-x1) + (y2-y1)*(y2-y1);
// }
const ll N = 2e5 + 10;
const ll mod1 = 998244353;
const ll mod2 = 1e9 + 7;
const ll hash_num = 3e9 + 9;
ll n, m, ca;
ll arr[N], brr[N], crr[N], drr[N];
//ll h[N],ne[N],e[N],w[N],book[N],idx;
// void add(ll a, ll b , ll c)
// {
//   e[idx] = b, w[idx] = c,ne[idx] = h[a], h[a] =idx ++ ; 
// }map < string, vector<PII>>mp;set<string >se;
void solve()
{cin >> n;mp.clear();se.clear();rep(i, 1, n){string name;ll l, r, num;cin >> name >> l >> r >> num;rep(j, 1, num){string pename;cin >> pename;for (ll k = 0;k < mp[pename].size();k++){if (mp[pename][k].first <= l && l <= mp[pename][k].second){se.insert(pename);}else if (mp[pename][k].first <= r && mp[pename][k].second >= r){se.insert(pename);}else if (l <= mp[pename][k].first && r >= mp[pename][k].second){se.insert(pename);}}mp[pename].push_back({ l,r });}}cout << se.size() << endl;for (auto it : se){cout << it << endl;}
}int main()
{IOS;ll _;_ = 1;    //scanf("%lld",&_);cin >> _;ca = 1;while (_--){solve();ca++;}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/728066.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FreeMarker的原理

FreeMarker是一个Java库&#xff0c;用于生成文本输出&#xff08;如HTML网页、电子邮件、配置文件、源代码等&#xff09;&#xff0c;基于模板和传递给模板的数据。它通常被用作Web应用程序的视图层&#xff0c;以生成动态HTML内容。FreeMarker的设计理念是将页面设计&#x…

Jenkins中构建vue项目过程中vite进程被终止(kill),导致vue项目构建失败

jenkins的部分构建日志如下&#xff1a; [33mThe CJS build of Vites Node API is deprecated. See https://vitejs.dev/guide/troubleshooting.html#vite-cjs-node-api-deprecated for more details.[39m 16:37:44 [36mvite v5.0.5 [32mbuilding for production...[36m[39m …

Python学习DAY12_网络应用

网络应用 发送电子邮件 即使在通信软件如此发达的今天&#xff0c;电子邮件仍然是互联网上使用最为广泛的应用之一&#xff0c;公司向应聘者发出录用通知、网站向用户发送一个激活账号的链接、银行向客户推广它们的理财产品等几乎都是通过电子邮件来完成的&#xff0c;而这些任…

Java必须掌握的多态的优势和弊端(含面试大厂题含源码)

在面试中&#xff0c;了解一个概念的优势和弊端可以帮助面试官判断应聘者对该概念的深入理解程度以及能否在实际开发中合理运用。下面是一个围绕Java多态优势和弊端的面试题&#xff0c;旨在评估应聘者对多态在实际编程中应用的理解。 面试题: Java多态的优势和弊端 请解释Ja…

1. Gin框架入门

文章目录 一、Gin框架介绍二、RESTful API三、Gin渲染1. HTML渲染2. 自定义模板函数3. 静态文件处理4. 使用模板继承5. 补充文件路径处理6. JSON渲染7. XML渲染8. YMAL渲染9. protobuf渲染 四、Gin获取各种方式传递过来的参数1、获取querystring参数2、获取form参数3、获取path…

Vue3实现页面跳转功能

目标&#xff1a; 首页&#xff1a; 点击About后&#xff1a; 第一步&#xff1a;安装 Vue Router和创建你先 npm install vue-router4第二步&#xff1a;在router.js中设置路由 import { createRouter, createWebHistory } from vue-router; import Home from ./views/Home…

如何写一份简单的产品说明书,教程奉上

如果你是一位新晋产品经理&#xff0c;或者正在研发新产品&#xff0c;并且心中惴惴不安因为未知的产品说明书制作环节&#xff0c;那么今天你就来对地方了。本篇文章将教你如何创建一份简单明了的产品说明书。让我们开始吧&#xff01; 首先&#xff0c;明确产品说明书的目标。…

达梦数据库基础操作(二):表空间操作

达梦数据库基础操作(二)&#xff1a;表空间操作 1. 表空间操作 1.1 达梦表空间介绍 表空间的概念&#xff1a; 每个DM 数据库都是由一个或者多个表空间组成&#xff0c;表空间是一个逻辑的存储容器&#xff0c;它位于逻辑结构的顶层&#xff0c;用于存储数据库中的所有数据&am…

【CSP试题回顾】201503-3-节日

CSP-201503-3-节日 关键点&#xff1a;格式化输出 在C中&#xff0c;格式化输出通常利用iostream库中的功能&#xff0c;特别是iomanip头文件提供的一系列操作符。这些操作符用于控制输出格式&#xff0c;如宽度、填充、对齐方式等。在你提供的代码中&#xff0c;用于格式化输…

基于Springboot+Layui餐厅点餐系统

一、项目背景 在互联网经济飞速发展的时代&#xff0c;网络化企业管理也在其带领下快速兴起&#xff0c;开发一款自主点餐系统会受到众多商家的青睐。现如今市场上的人力资源价格是非常高昂的&#xff0c;一款自主点餐系统可以减少餐厅的人力开销&#xff0c;将服务员从繁忙的…

RESTful接口规范参考

介绍 REST&#xff08;Representational State Transfe&#xff09;&#xff0c;一种架构设计风格&#xff0c;而不是强制标准&#xff0c;主要用于客户端与服务端接口规范&#xff1b;在现代的软件开发中&#xff0c;RESTful API已经成为应用程序之间通信的重要桥梁&#xff…

【Java】小白友好的Javassist源代码级别常用API学习笔记

目录 介绍 Javassist&ASM? Javassist关键类 常用方法 ClassPool 的常用方法 CtClass 的常用方法 CtMethod 的常用方法 CtField 的常用方法 补充 setSuperclass in Javassist constructor in Javassist toBytecode in Javassist Javassist实现TemplatesImpl恶…

电磁兼容EMC:单、双面板的均匀传输线

目录 1 传输线 2 均匀传输线 3 特征阻抗 4 应用案例 为何要讲单、双面板的均匀传输线&#xff1f;因为均匀传输线能保证信号质量&#xff0c;减少EMC问题&#xff0c;而单双面板没有完整的地和电源平面&#xff0c;很难实现均匀传输线的布线&#xff0c;所以更需要知道如何在…

[数据集][图像分类]玉米叶子病害分类数据集9145张4类别

数据集类型&#xff1a;图像分类用&#xff0c;不可用于目标检测无标注文件 数据集格式&#xff1a;仅仅包含jpg图片&#xff0c;每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数)&#xff1a;9145 分类类别数&#xff1a;4 类别名称:["cercospora_leaf_spot gray…

08 |「Fragment 」

前言 实践是最好的学习方式&#xff0c;技术也如此。 文章目录 前言一、简介1、是什么2、为什么要有 Fragment3. Fragment 详细解释 二、Fragment 与 Activity 的直观理解三、Fragment 的创建1、Fragment 的创建方式2、Fragment 的增删替查1&#xff09; 替换&#xff08;常见&…

01背包问题 刷题笔记

思路 dp 用f[i][j]来表示当体积为j时 考虑前i件物品可以获得的 最大值 记住f[i][j]本身是个价“价值” 考虑两种状态 是否将第i件物品放入背包里面 将背包的体积从小到大递增来进行考虑 首先 考虑条件 如果当前增加的体积放不下下一件物品 则该体积 可以获得的最大值可以直接…

[剪藏] - 教育系统的成功

我在国内并没有系统地学习语音&#xff0c;在英国也未能成功&#xff0c;现在美国我确定我已经行驶在轨道上了&#xff08;即使未来的作业分数及格或不及格&#xff09;。 我反思有这么几点&#xff1a; 1. 美国紧扣系统的教材&#xff0c;不是老师自由发挥。教材是知识精英们…

tidyverse去除表格中含有NA的行

在tidyverse中&#xff0c;特别是使用dplyr包&#xff0c;去除含有NA的行可以通过filter()函数结合is.na()和any()或all()函数来实现。dplyr是tidyverse的一部分&#xff0c;提供了一系列用于数据操作的函数&#xff0c;使数据处理变得更加简单和直观。 以下是一个简单的例子&…

软考笔记--软件系统质量属性

一.软件系统质量属性的概念 软件系统的质量就是“软件系统与明确地和隐含的定义的需求相一致的程度”。更具体地说&#xff0c;软件系统质量就是软件与明确地叙述的功能和性能需求文档中明确描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特征相一致的程度。从管理…

关于汽车E\E架构演进的思考(2)

目录 1.概述 2. 整车通信的限制 3 如何保证融合ECU的功能安全和信息安全 4.小结 1.概述 上篇文章主要聊了当前电子电气架构以及未来电子电气架构的特点&#xff0c;简述了即将要面临的挑战&#xff0c;下面我们继续讲述挑战。 2. 整车通信的限制 下一代架构主要以以太网…