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的更多相关文章

随机推荐

  1. 1048 数字加密 (20 分)C语言

    本题要求实现一种数字加密方法.首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余--这里用 J 代表 ...

  2. 小小知识点(十五)——origin pro 2018 安装和消除demo字样

    安装 1.安装过成中选择语言为中文或者英文,安装完成后可在注册表中切换语言. 2.安装过程中使用序列号 中文版:DF2W8-9089-7991320英文版:GF3S4-9089-7991320 3.安 ...

  3. Ubuntu 18.04 + ROS Melodic + TurtleBot3仿真

    1. 下载安装包 官网地址: http://wiki.ros.org/action/show/Robots/TurtleBot?action=show&redirect=TurtleBot 所 ...

  4. Java对象头与锁

    对象由多部分构成的,对象头,属性字段.补齐区域等.所谓补齐区域是指如果对象总大小不是4字节的整数倍,会填充上一段内存地址使之成为整数倍. 后面两个很好理解,今天我主要想总结一下对象头: 对象头这部分在 ...

  5. 【转】在Eclipse下搭建Android开发环境教程

    本文将全程演示Android开发环境的搭建过程,无需配置环境变量.所有软件都是写该文章时最新版本,希望大家喜欢.   一 相关下载 三 Eclipse配置 (1)Java JDK下载 1 安装andr ...

  6. 【转】早该知道的7个JavaScript技巧

    我写JAVAScript代码已经很久了,都记不起是什么年代开始的了.对于JavaScript这种语言近几年所取得的成就,我感到非常的兴奋:我很幸运也是这些成就的获益者.我写了不少的文章,章节,还有一本 ...

  7. i3s 一种开源的三维地理数据规范 简单解读

    i3s,esri主推到ogc的一种三维开源GIS数据标准. 版权声明:原创.博客园/B站/小专栏/知乎/CSDN @秋意正寒 转载请标注原地址并声明转载: https://www.cnblogs.co ...

  8. CS0656 缺少编译器要求的成员“Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create”

    问题出现原因:在net core使用动态类型dynamic,在编译的时候提示错误信息如上. 解决方案: 1.不用dynamic类型 2.在使用的地方添加一个dll,Microsoft.CSharp,或 ...

  9. python类型检查和类型转换

    类型检查 type()用来检查值的类型 (整型.浮点型.布尔值.字符串.空值) 该函数会将检查的结果作为返回值返回,可以通过变量来接收函数的返回值 print(type(1)) # <class ...

  10. 【UEFI】---BIOS中对Guid的使用以及Lib函数的使用总结

    ---恢复内容开始--- BIOS发展至今传统的汇编实现早已被抛弃,UEFI作为目前一套主流的标准定义接口,被广泛使用.之前被一些有关GUID和一些Lib函数的使用以及跨Pkg调用给折腾的不行,每次改 ...