Codeforces_837
A.扫一遍。
#include<bits/stdc++.h>
using namespace std; int n;
string s; int main()
{
cin >> n;
getchar();
getline(cin,s);
int ans = ,maxx = ;
for(int i = ;i < n;i++)
{
if(s[i] == ' ') maxx = ;
else
{
if(s[i] >= 'A' && s[i] <= 'Z') maxx++;
ans = max(ans,maxx);
}
}
cout << ans << endl;
return ;
}
B.暴力判断两种情况。
#include<bits/stdc++.h>
using namespace std; int n,m;
string s[],ss[]; int main()
{
cin >> n >> m;
for(int i = ;i <= n;i++)
{
cin >> s[i];
s[i] = ' '+s[i];
}
int flag = ;
if(n% == )
{
int t1 = n/+,t2 = n/*+;
char a = s[][],b = s[t1][],c = s[t2][];
if(a != b && b != c && a != c)
{
int ok = ;
for(int i = ;i < t1;i++)
{
for(int j = ;j <= m;j++)
{
if(s[i][j] != a) ok = ;
}
}
for(int i = t1;i < t2;i++)
{
for(int j = ;j <= m;j++)
{
if(s[i][j] != b) ok = ;
}
}
for(int i = t2;i <= n;i++)
{
for(int j = ;j <= m;j++)
{
if(s[i][j] != c) ok = ;
}
}
if(ok) flag = ;
}
}
if(m% == )
{
int t1 = m/+,t2 = m/*+;
char a = s[][],b = s[][t1],c = s[][t2];
if(a != b && b != c && a != c)
{
int ok = ;
for(int i = ;i < t1;i++)
{
for(int j = ;j <= n;j++)
{
if(s[j][i] != a) ok = ;
}
}
for(int i = t1;i < t2;i++)
{
for(int j = ;j <= n;j++)
{
if(s[j][i] != b) ok = ;
}
}
for(int i = t2;i <= m;i++)
{
for(int j = ;j <= n;j++)
{
if(s[j][i] != c) ok = ;
}
}
if(ok) flag = ;
}
}
if(flag) cout << "YES" << endl;
else cout << "NO" << endl;
return ;
}
C.暴力取两辆,判断是否可行。
#include<bits/stdc++.h>
using namespace std; int n,a,b,x[],y[]; bool ok(int i,int j)
{
if(x[i]+y[j] <= a && max(y[i],x[j]) <= b) return ;
if(x[i]+y[j] <= b && max(y[i],x[j]) <= a) return ;
if(x[i]+x[j] <= a && max(y[i],y[j]) <= b) return ;
if(x[i]+x[j] <= b && max(y[i],y[j]) <= a) return ;
if(y[i]+y[j] <= b && max(x[i],x[j]) <= a) return ;
if(y[i]+y[j] <= a && max(x[i],x[j]) <= b) return ;
if(y[i]+x[j] <= b && max(x[i],y[j]) <= a) return ;
if(y[i]+x[j] <= a && max(x[i],y[j]) <= b) return ;
return ;
} int main()
{
ios::sync_with_stdio();
cin >> n >> a >> b;
for(int i = ;i <= n;i++) cin >> x[i] >> y[i];
int ans = ;
for(int i = ;i <= n;i++)
{
for(int j = i+;j <= n;j++)
{
if(ok(i,j)) ans = max(ans,x[i]*y[i]+x[j]*y[j]);
}
}
cout << ans << endl;
return ;
}
D.dp。
#include<bits/stdc++.h>
using namespace std; int n,k,cnt1[] = {},cnt2[] = {},dp[][];
long long a[]; int main()
{
ios::sync_with_stdio();
cin >> n >> k;
for(int i = ;i <= n;i++) cin >> a[i];
for(int i = ;i <= n;i++)
{
while(a[i]% == )
{
a[i] /= ;
cnt2[i]++;
}
while(a[i]% == )
{
a[i] /= ;
cnt1[i]++;
}
}
memset(dp,-,sizeof(dp));
dp[][] = ;
for(int i = ;i <= n;i++)
{
for(int j = k;j >= ;j--)
{
for(int t = ;t >= cnt1[i];t--)
{
if(dp[j-][t-cnt1[i]] != -) dp[j][t] = max(dp[j][t],dp[j-][t-cnt1[i]]+cnt2[i]);
}
}
}
int ans = ;
for(int i = ;i <= ;i++) ans = max(ans,min(i,dp[k][i]));
cout << ans << endl;
return ;
}
E.有很多次操作,只会把b减一,我们对于每一次gcd != 1之前,对a的每个因子取模统计 gcd == 1的次数,统一减。另外,已经被b约去的因子,可以在之后的步骤不考虑。
#include<bits/stdc++.h>
using namespace std; long long a,b; int main()
{
ios::sync_with_stdio();
cin >> a >> b;
long long t = __gcd(a,b);
a /= t;
b /= t;
vector<long long> v;
for(long long i = ;i*i <= a;i++)
{
while(a%i == )
{
a /= i;
v.push_back(i);
}
}
if(a > ) v.push_back(a);
long long ans = ;
while(b)
{
long long t = b;
for(auto it = v.begin();it != v.end();it++) t = min(t,b%(*it));
ans += t;
b -= t;
vector<long long> vv;
for(auto it = v.begin();it != v.end();it++)
{
long long t = *it;
if(b%t == ) b /= t;
else vv.push_back(t);
}
v = vv;
}
cout << ans << endl;
return ;
}
Codeforces_837的更多相关文章
随机推荐
- 虚拟机安装LEDE旁路由实现软路由功能
如何在虚拟上安装LEDE软路由,接下来我们一步一步操作. 1.首先到https://firmware.koolshare.cn/ 下载虚拟机下专用盘如图标记均可 2.虚拟机创建 选择下载好的文件 保持 ...
- C# 获取WebBrowser内容的高度
int webHeight =0; WebBrowser web =new WebBrowser(); web.Navigate("about:blank"); while (we ...
- ArcGIS Desktop 10.1 下载地址及破解
ArcGIS Desktop 10.1 正式版请到这里下载 http://pan.baidu.com/share/link?shareid=27476&uk=3608003693 正式版破解方 ...
- 原生javascript实现选项卡(基础版)
一.实现原理 1.主要运用“排他思想”,在设置当前元素前,先把相应元素恢复到默认状态 2.给相应元素添加下标的应用 二.代码展示 <!DOCTYPE html> <html> ...
- 悄摸直播(一)—— 推流器的实现(获取笔记本摄像头画面,转流推流到rtmp服务器)
悄摸直播 -- JavaCV实现本机摄像头画面远程直播 推流器 一.功能说明 获取pc端的摄像头流数据 + 展示直播效果 + 推流到rtmp服务器 二.代码实现 /** * 推流器 * @param ...
- k8s内运行ubuntu容器
k8s内运行ubuntu镜像 环境 互相能访问的4台机器master,node01,node02,node03,4核心,内存8G 使用root操作 安装k8s 在master安装docker.kube ...
- Webpack实战(三):作为前端你不得不懂的Webpack资源入口和出口的配置
关于Webpack前两篇跟大家分享的主要是Webpack的一些基本的配置,今天开始我们详细了解一下有关Webpack的各种配置,今天主要跟大家分享的是Webpack的资源入口和资源出口的配置. 如果想 ...
- Java单体应用 - Markdown - 03.高级技巧
原文地址:http://www.work100.net/training/monolithic-markdown-advance.html 更多教程:光束云 - 免费课程 高级技巧 序号 文内章节 视 ...
- Nginx配置不同端口号映射二级域名
upstream xx{ #ip_hash; server 127.0.0.1:1008; } server { listen 80; server_name xx.xxx.com; location ...
- 高通量计算框架HTCondor(五)——分布计算
目录 1. 正文 1.1. 任务描述文件 1.2. 提交任务 1.3. 返回结果 2. 相关 1. 正文 1.1. 任务描述文件 前文提到过,HTCondor是通过condor_submit命令将提交 ...