Codeforces Beta Round #4 (Div. 2)【完结】
2022.3.3
题单地址:https://codeforces.com/contest/4
目录
- A. Watermelon【思维】
- B. Before an Exam【贪心】
- C. Registration system【哈希表】
- D. Mysterious Present【DP最长上升子序列的变种】
A. Watermelon【思维】
先切一个2,在看剩余的是二的倍数不是即可。
#include<bits/stdc++.h>
using namespace std;
int main(void)
{int n; cin>>n;n-=2;if(n>0&&n%2==0) puts("YES");else puts("NO");
}
B. Before an Exam【贪心】
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n,m,l[N],r[N],sl[N],sr[N];
int main(void)
{cin>>n>>m;for(int i=1;i<=n;i++) cin>>l[i]>>r[i],sl[i]=sl[i-1]+l[i],sr[i]=sr[i-1]+r[i];if(sr[n]<m||m<sl[n]) puts("NO");//小于最少需要的,或者大于最大的需要的else{puts("YES");for(int i=1;i<=n;i++){m=m-l[i];if(m>sr[n]-sr[i]) //剩余的还大于剩余的最大值{int temp=min(r[i],l[i]+m-(sl[n]-sl[i]));//拿个最可能拿的,且剩余的还满足后面的需求cout<<temp<<" ";m=m-(temp-l[i]);}else cout<<l[i]<<" ";}}return 0;
}
C. Registration system【哈希表】
#include<bits/stdc++.h>
using namespace std;
int n;
map<string,int>mp,st;
int main(void)
{cin>>n;while(n--){string s; cin>>s;if(mp.count(s)!=0) cout<<s<<mp[s]<<endl;else cout<<"OK"<<endl;mp[s]++; }return 0;
}
D. Mysterious Present【DP最长上升子序列的变种】
这道题猛地以看特别像最长上升子序列,但是又有点不同就是它是有俩属性的。
那么我们可以先将第一属性从小到大排序,再将属性从大到小排序。
然后跟基本的上升子序列一样,不过比较俩属性就行了。
注意保存转移的过程,只有更优的时候才保存路径,不然会路径混乱。
#include<bits/stdc++.h>
using namespace std;
const int N=1e5*5+10;
struct node{int w,h,id;}s[N];
bool cmp(node a,node b)
{if(a.w==b.w) return a.h<b.h;return a.w<b.w;
}
int n,w1,h1;
int main(void)
{cin>>n>>w1>>h1;for(int i=1;i<=n;i++){cin>>s[i].w>>s[i].h;s[i].id=i;}sort(s+1,s+n+1,cmp);int f[N]={0},path[N]={0};for(int i=1;i<=n;i++){if(s[i].h<=h1||s[i].w<=w1) continue;//说明比要求的最基础的还小f[i]=1;for(int j=1;j<i;j++){if(s[j].h<s[i].h&&s[j].w<s[i].w&&f[i]<f[j]+1)//只有更优才保存路径{path[i]=j;f[i]=max(f[i],f[j]+1);}}}int ans=0,u;for(int i=1;i<=n;i++) if(f[i]>ans) ans=f[i],u=i;vector<int>ve;while(u){ve.push_back(s[u].id);u=path[u];}cout<<ans;if(ans==0) return 0;cout<<endl;for(int i=ve.size()-1;i>=0;i--) cout<<ve[i]<<" ";return 0;
}
Codeforces Beta Round #4 (Div. 2)【完结】相关推荐
- Codeforces Beta Round #75 (Div. 1 Only) B. Queue 线段树。单点更新
http://codeforces.com/problemset/problem/91/B 题意: 给你n个数,求得i 到n中小于a[i]的最右边的a[j],然后求a[i]到a[j]之间包含了多少个数 ...
- Codeforces Beta Round #22 (Div. 2 Only) E. Scheme(DFS+强连通)
题目大意 给了 n(2<=n<=105) 个点,从每个点 u 出发连向了一个点 v(共 n 条边) 现在要求添加最少的边使得整个图是一个强连通图 做法分析 这道题千万不要一般化:先求强连通 ...
- Codeforces Beta Round #4 (Div. 2 Only)
Codeforces Beta Round #4 (Div. 2 Only) A 水题 1 #include<bits/stdc++.h> 2 using namespace std; 3 ...
- Codeforces Beta Round #16 (Div. 2 Only)【未完结】
2022.3.9 题目地址:https://codeforces.com/contest/16 目录 A. Flag[模拟] B. Burglar and Matches[贪心] C. Monitor ...
- Codeforces Beta Round #14 (Div. 2)【未完结】
2022.3.8 题单地址:https://codeforces.com/contest/14 目录 A. Letter B. Young Photographer[差分] C. Four Segme ...
- Codeforces Beta Round #12 (Div 2 Only)【未完结】
2022.3.7 题单地址:https://codeforces.com/contest/12 目录 A. Super Agent B. Correct Solution? C. Fruits[贪心] ...
- Codeforces Beta Round #9 (Div. 2 Only)【未完结】
2022.3.6 题目地址:https://codeforces.com/contest/9 目录 A. Die Roll B. Running Student[枚举] C. Hexadecimal' ...
- Codeforces Beta Round #6 (Div. 2)【未完结】
2022.3.4 题单地址:https://codeforces.com/contest/6 目录 A. Triangle[枚举] B. President's Office[枚举] C. Alice ...
- Codeforces Beta Round #92 (Div. 1 Only) A. Prime Permutation 暴力
A. Prime Permutation 题目连接: http://www.codeforces.com/contest/123/problem/A Description You are given ...
最新文章
- Microsoft Visual C++ 14.0 is required
- java string逆序_Java学习笔记(八)——异常
- zabbix对一台主机监控的操作
- Scapy学习笔记一
- 今天开始学Pattern Recognition and Machine Learning (PRML),章节1.6,Information Theory信息论简介
- Ansible PLaybook template 模板详解
- 程序员学习网站备份(小众+不定时更新ing...)建议收藏
- Deep Learning菜鸡篇,我的第一个深度神经网络
- Qt工作笔记-QTabWidget插入widget(重要的是编程思想)
- mysql数据库开发经历_六年开发经验,整理Mysql数据库技巧笔记,全网最详细的笔记集合!...
- python 千万级数据处理_Python实现 ! 千万级别数据处理
- 曲线救国:提高github下载速度到2MB/s
- 索尼爱立信k510驱动_未来人工智能驱动的电信网络:爱立信案例研究
- 利用FILTER特性优化SQL
- 回文数,回文字符串的判断
- WIN10 + Ubuntu18.04 双系统安装教程(新机)
- 深入理解JavaI/O流
- 禁用wordpress新编辑器,使用经典编辑器的方法
- 计算机音乐学院,乐与录音艺术学院学生在中国大学生计算机设计大赛(计算机音乐创作类)中喜获佳绩...
- 轻量级简约的自动采集小说程序源码