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的更多相关文章
随机推荐
- Good Bye 2019(前五题题解)
这套也是后来补得. 我太菜了,第三题就卡着了.想了好久才做出来,要是参加了绝对掉分. D题是人生中做完的第一道交互题,不容易. 比赛传送门 A.Card Game 题目大意:一共有n张互不相同的牌,玩 ...
- notepad++中cmd运行中文乱码?
notepad++中有中文内容时,cmd运行时中文显示乱码,如何处理? 设置-->首选项-->新建-->选择ANSI编码(注意现在的文件不会被转换,要重新把代码拷入修建的文件中才可以 ...
- 微服务统计,分析,图表,监控一体化的HttpReports项目在.Net Core 中的使用
简单介绍 HttpReports 是 .Net Core 下的一个Web项目, 适用于WebAPI,Ocelot网关应用,MVC项目,非常适合针对微服务应用使用,通过中间件的形式集成到您的项目中,可以 ...
- RHEL6.6安装Oracle 11g RAC - 基于VMware的实验环境
实验环境准备虚拟机:VMware® Workstation 14 Pro操作系统:Red Hat Enterprise Linux 6.6 x86_64rhel-server-6.6-x86_64-d ...
- 类加载器在Tomcat中的应用
之前有文章已经介绍过了JVM中的类加载机制,JVM中通过类加载加载class文件,通过双亲委派模型完成分层加载.实际上类加载机制并不仅仅是在JVM中得以运用,通过影响字节码生成和类加载器目前已经有了许 ...
- java反射-- Field 用法实践
java 反射是一种常用的技术手段, 通过加载类的字节码的方式来获取相关类的一些信息 比如成员变量, 成员方法等. Field 是什么呢? field 是一个类, 位于java.lang.reflec ...
- eclipse maven工程错误总汇
1.问题: Target runtime Apache Tomcat v7.0 is not defined 解决方法: right click on your project & ...
- PGSQL 字符串作为查询参数的处理
刚从mysql转到pgsql,不太熟悉用法,今天在查询的时候有一个查询参数是字符串,一直没有这一列的错误 ERROR: column "A 桥梁" does not exist L ...
- mysql 向字段添加数据或者删除数据
UPDATE table SET cids = CONCAT(cids , ',12') where id=id //向字段添加数据 //因为要用逗号分隔 所以在在前面加了一个逗号 UPDATE ta ...
- Egret学习-初次创建项目
最近无聊,好久没有写游戏了,决定学习下egret,主要原因:egret是h5框架,相比android和iPhone或cocos2dx来说不需要安装可以直接运行. 下面进入正题,开始学习egret 简单 ...