freee Programming Contest 2023(AtCoder Beginner Contest 310) - AtCoder

A - Order Something Else (atcoder.jp)

题意是在买一道菜的情况下可以将原为\(P\)元的饮料优惠\(Q\)元,否则就按原价买

#include<bits/stdc++.h>

#define int long long

using namespace std;

signed main(){
int n,p,q;
cin >> n >> p >> q; vector<int> a(n);
for(auto &i : a)
cin >> i; int ans = p;
for(auto i : a){
if(q + i < ans)
ans = q + i;
} cout << ans << endl; return 0;
}

B - Strictly Superior (atcoder.jp)

题意是有\(N\)种产品,每种产品有最多有\(M\)\((1 < C_i < M)\)种功能,定义第\(i\)种产品的第\(C_i\)种功能为\(F_{i,C_i}\),现满足以下条件则说明存在有一种商品严格大于另一种商品:

  • \(P_i \geq P_j\)

  • 第\(j\)种商品包含第\(i\)种商品的全部功能

  • $P_i > P_j $ 或者 第\(j\)种商品的功能比第\(i\)种更多

纯模拟,注意对条件的判断.

繁杂版(bushi

#include <bits/stdc++.h>
#define inf 0x3f3f3f3f
#define endl '\n'
#define int long long
#define all(a) (a).begin(),(a).end() using namespace std; typedef pair<int,int> PII; int n,m;
void solve() {
cin >> n >> m;
multimap<int,vector<int>> prj;
for(int i = 0;i < n;i ++){
int p,k;
cin >> p >> k;
vector<int> o;
for(int j = 0;j < k ;j ++){
int y;
cin >> y;
o.push_back(y);
}
prj.insert({p,o});
} bool f = false;
for(auto i : prj){
for(auto j : prj){
if(i == j) continue;
if(j.first <= i.first && j.second.size() >= i.second.size()){
for(int k = 0;k < i.second.size() ;k++){
if(std::find(j.second.begin(), j.second.end(),i.second[k]) == j.second.end())
break;
if (k == i.second.size() - 1){
if(j.first < i.first || j.second.size() > i.second.size())
f = true;
}
}
}
}
}
cout << (f ? "Yes" : "No") << endl;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);cout.tie(nullptr);
int Ke_scholar = 1;
// cin >> Ke_scholar;
while(Ke_scholar--)
solve();
return 0;
}

简洁版(\(jiangly\)的

#include <bits/stdc++.h>

using i64 = long long;

int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr); int N, M;
std::cin >> N >> M; std::vector<int> P(N);
std::vector<std::bitset<100>> F(N);
for (int i = 0; i < N; i++) {
std::cin >> P[i];
int C;
std::cin >> C;
while (C--) {
int x;
std::cin >> x;
F[i][x - 1] = 1;
}
} for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
if (P[i] <= P[j] && (F[i] & F[j]) == F[j] && (P[i] < P[j] || F[i] != F[j])) {
std::cout << "Yes\n";
return 0;
}
}
}
std::cout << "No\n"; return 0;
}

C - Reversible (atcoder.jp)

题意就是相同或相反的字符串算一个球棒,输出一共有多少球棒

每次判断一下就行

#include <bits/stdc++.h>
#define inf 0x3f3f3f3f
#define endl '\n'
#define int long long using namespace std; int n,m; void solve() {
cin >> n;
set<string> a;
map<string,int> mps;
for(int i = 0;i < n;i ++){
string s,ss;
cin >> s;
ss = s;
std::reverse(s.begin(), s.end());
if(mps.count(s))
continue;
mps[ss]++;
a.insert(ss);
}
cout << a.size() << endl;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);cout.tie(nullptr);
int Ke_scholar = 1;
// cin >> Ke_scholar;
while(Ke_scholar--)
solve();
return 0;
}

放份\(jiangly\)的学习下(

#include <bits/stdc++.h>

using i64 = long long;

int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr); int N;
std::cin >> N; std::vector<std::string> S(N);
for (int i = 0; i < N; i++) {
std::cin >> S[i];
auto T = std::string(S[i].rbegin(), S[i].rend());
if (T < S[i]) {
S[i] = T;
}
} auto ans = (std::set(S.begin(), S.end()).size());
std::cout << ans << "\n"; return 0;
}

D - Peaceful Teams (atcoder.jp)

后面没做出来了,不过看了\(jiangly\)的也算有了思路(bushi

题意就是有\(M\)对有矛盾的队员不能放一个队里,问最多能组成多少不同的队

因为数据范围较小所以可以直接搜就完了

\(c(x)\)代表的是第\(x\)个人被分配到哪一队了,\(max(y,i+ 1)\)是带入当前已经有人被分配的最大队伍数

#include  <bits/stdc++.h>
#define endl '\n'
#define int long long
#define inf 0x3f3f3f3f using namespace std; void solve(){ int t;
cin >> n >> t >> m;
vector<int> a(m),b(m);
for(int i = 0;i < m;i ++){
cin >> a[i] >> b[i];
a[i] --,b[i] --;
} vector<int> c(n);
int ans = 0; auto dfs = [&](auto self, int x,int y){
if(x == n){
if(y != t){
return ;
}
bool ok = true;
for(int i = 0;i < m;i ++){
if(c[a[i]] == c[b[i]])
ok = false;
}
ans += ok;
return ;
}
for(int i = 0;i <= y;i ++){
c[x] = i;
self(self, x + 1, max(y,i + 1));
}
}; dfs(dfs,0,0);
cout << ans << endl;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);cout.tie(nullptr);
int Ke_scholar = 1;
// cin >> ie_scholar;
while(Ke_scholar--)
solve();
return 0;
}

就不放\(jiangly\)的了,因为跟他一样(

AtCoder Beginner Contest 310的更多相关文章

  1. AtCoder Beginner Contest 100 2018/06/16

    A - Happy Birthday! Time limit : 2sec / Memory limit : 1000MB Score: 100 points Problem Statement E8 ...

  2. AtCoder Beginner Contest 052

    没看到Beginner,然后就做啊做,发现A,B太简单了...然后想想做完算了..没想到C卡了一下,然后还是做出来了.D的话瞎想了一下,然后感觉也没问题.假装all kill.2333 AtCoder ...

  3. AtCoder Beginner Contest 053 ABCD题

    A - ABC/ARC Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Smeke has ...

  4. AtCoder Beginner Contest 136

    AtCoder Beginner Contest 136 题目链接 A - +-x 直接取\(max\)即可. Code #include <bits/stdc++.h> using na ...

  5. AtCoder Beginner Contest 137 F

    AtCoder Beginner Contest 137 F 数论鬼题(虽然不算特别数论) 希望你在浏览这篇题解前已经知道了费马小定理 利用用费马小定理构造函数\(g(x)=(x-i)^{P-1}\) ...

  6. AtCoder Beginner Contest 076

    A - Rating Goal Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Takaha ...

  7. AtCoder Beginner Contest 079 D - Wall【Warshall Floyd algorithm】

    AtCoder Beginner Contest 079 D - Wall Warshall Floyd 最短路....先枚举 k #include<iostream> #include& ...

  8. AtCoder Beginner Contest 064 D - Insertion

    AtCoder Beginner Contest 064 D - Insertion Problem Statement You are given a string S of length N co ...

  9. AtCoder Beginner Contest 075 D - Axis-Parallel Rectangle【暴力】

    AtCoder Beginner Contest 075 D - Axis-Parallel Rectangle 我要崩溃,当时还以为是需要什么离散化的,原来是暴力,特么五层循环....我自己写怎么都 ...

  10. AtCoder Beginner Contest 075 C bridge【图论求桥】

    AtCoder Beginner Contest 075 C bridge 桥就是指图中这样的边,删除它以后整个图不连通.本题就是求桥个数的裸题. dfn[u]指在dfs中搜索到u节点的次序值,low ...

随机推荐

  1. 如何在 VSCode 中配置和编写 LINGO

    目录 如何在 VSCode 中配置和编写 LINGO 安装 VSCode 扩展 LINGO 脚本文件与 runlingo 命令 LINGO 命令行交互和脚本文件 配置 Visual Stdio Cod ...

  2. windows系统安装或使用inspect.exe工具

    确认是否安装? 结合工具everything,进行搜索 选择对应操作系统的版本,右键->选择打开路径,进到inspect.exe的安装路径,双击打开软件 软件开启后,就会自动开始抓取目前软件界面 ...

  3. JS的JSON.parse问题

    这个问题,已经有非常多人说过,而且由来已久. 大家都提供了不少的解决方法,但是都不够彻底. 一)现在是什么情况 1.使用SpringMvc+ModelAndView+jsp传递值 由于业务需要,通过m ...

  4. 详解Web应用安全系列(3)失效的身份认证

    大多数身份和访问管理系统的设计和实现,普遍存在身份认证失效的问题.会话管理是身份验证和访问控制的基础,并且存在于所有有状态的应用程序中.攻击者可以使用指南手册来检测失效的身份认证,但通常会关注密码转储 ...

  5. 图最短路径之Floyd

    Floyd Warshall Algorithm 算法参考地址:Floyd Warshall Algorithm | DP-16 - GeeksforGeeks 算法的简介 Floyd 用于求解所有对 ...

  6. 嵌入式ARM端测试手册——全志T3+Logos FPGA评估板(下)

    前 言 本指导文档适用开发环境: Windows开发环境:Windows 7 64bit.Windows 10 64bit Linux开发环境:Ubuntu18.04.4 64bit 虚拟机:VMwa ...

  7. java中的即时编译(JIT)简介

    Java发展这么多年一直长青,很大一部分得益于开发人员长期对其坚持不懈的优化:写得更少,跑得更快!JIT就是其中一项十分重要的优化. JIT全程Java Intime Compiler,即Java即时 ...

  8. 坚果云与floccus实现Chrome书签国内跨设备、跨平台同步

      本文介绍基于floccus插件与坚果云协同使用的方法,对浏览器的书签进行实时在线同步的操作.   在工作与学习中,我们时常希望在不同浏览器之间实现书签的同步:而一些传统的浏览器书签同步方案,或多或 ...

  9. 数学工具 | 如何将图片公式快速输入到Word中?

    背景: 在日常科研.学习与工作中,我们可能需要使用到某些书籍.期刊或者规范上的公式,但是如果自己纯手打则会相当麻烦(数学系LaTeX高手请忽略),因此如果有工具能够解决这个问题,那真的是解决了一大痛点 ...

  10. Swift开发基础07-内存布局

    了解Swift的内存布局和底层原理对于编写高性能和内存高效的应用非常重要.接下来,我将更详细地介绍Swift的内存管理机制和一些底层实现细节,包括内存布局.ARC(自动引用计数).引用类型和值类型的区 ...