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的更多相关文章
随机推荐
- centos7下图形界面和命令行界面切换
在图形界面使用 ctrl+alt+F2切换到dos界面 dos界面 ctrl+alt+F2切换回图形界面 在命令上 输入 init 3 命令 切换到dos界面 输入 init 5命令 切换到图形界面 ...
- 6.6 hadoop作业调优
提高速度和性能.可以从下面几个点去优化 可以在本地运行调试来优化性能,但是本地和集群是完全不同的环境,数据流模式也截然不同,性能优化要在集群上测试.有些问题如(内存溢出)只能在集群上重现. HPROF ...
- 输入URI,按下回车发生了什么?
当我们输入URL,按下回车发生了什么? 这个题目很俗套- -但是是面试经常出现的题目了.今天听尼古拉斯•屌•大斌哥介绍关于从URI到浏览器呈现给我们页面发生了什么.感觉收获颇多.索性就翻阅了一些其他资 ...
- Bonny手机APP试用体验
在上周四(即6月13日)下午,应王建民老师的邀请,我参观了学长学姐们的软件设计评比以及专业交流的活动,看到了形形色色学长学姐设计出的软件我觉得非常有趣,并对学长学姐们设计的软件的种类与功能感到由衷的钦 ...
- SparkStreaming-Kafka集成
SparkStreaming-Kafka集成 参考链接: Spark Streaming + Kafka Integration Guide 文章基本是官方的翻译, 最多再加入了一小部分自己的思考在内 ...
- L1-006 连续因子 (20分)
题意分析 题目中已经将意思说的很清楚了,就是输出一个数的最长连续因子的个数,并且输出是哪几个因子相乘.可以将题目从这两个角度进行分析: N为素数时,最长连续因子的个数为1,即它自己. N不为素数时,即 ...
- python类型检查和类型转换
类型检查 type()用来检查值的类型 (整型.浮点型.布尔值.字符串.空值) 该函数会将检查的结果作为返回值返回,可以通过变量来接收函数的返回值 print(type(1)) # <class ...
- 数据量不足,MedicalNet 如何助力医疗影像 AI 突破瓶颈?
导读 |近日,云+社区技术沙龙“腾讯开源技术”圆满落幕.本次沙龙邀请了多位腾讯技术专家,深度揭秘了腾讯开源项目TencentOS tiny.TubeMQ.Kona JDK.TARS以及Medical ...
- 安装mysql8.0.17指南
1.首先,下载社区版mysql(下载地址https://dev.mysql.com/downloads/mysql/) 2.下载之后,将文件解压到自己想要安装的目录(如,本人将解压文件放置g://my ...
- git 查看修改账号密码
git config user.name 查看用户名 git config user.email 查看用户邮箱 修改用户名和邮箱的命令 git config --glo ...