A.b序列从大到小填a序列中的0,在判断。

#include<bits/stdc++.h>
using namespace std; int n,m,a[],b[]; int main()
{
ios::sync_with_stdio();
cin >> n >> m;
for(int i = ;i <= n;i++) cin >> a[i];
for(int i = ;i <= m;i++) cin >> b[i];
sort(b+,b++m);
reverse(b+,b++m);
int now = ;
for(int i = ;i <= n;i++)
{
if(a[i] == ) a[i] = b[++now];
}
for(int i = ;i <= n;i++)
{
if(a[i-] > a[i])
{
cout << "Yes" << endl;
return ;
}
}
cout << "No" << endl;
return ;
}

B.分一个位置不同和两个位置不同两种情况。一个位置不同的直接改成没出现的数字。两个位置不同的把两种情况都试一下。

#include<bits/stdc++.h>
using namespace std; int n,a[],b[],c[],ok[] = {},x[]; int main()
{
ios::sync_with_stdio();
cin >> n;
for(int i = ;i <= n;i++) cin >> a[i];
for(int i = ;i <= n;i++) cin >> b[i];
int cnt = ;
for(int i = ;i <= n;i++)
{
if(a[i] == b[i]) ok[a[i]] = ;
else x[++cnt] = i;
}
if(cnt == )
{
for(int i = ;i <= n;i++)
{
if(!ok[i]) a[x[]] = i;
}
}
else
{
for(int i = ;i <= n;i++) c[i] = a[i];
for(int i = ;i <= n;i++)
{
if(!ok[i])
{
a[x[]] = i;
ok[i] = ;
break;
}
}
for(int i = ;i <= n;i++)
{
if(!ok[i]) a[x[]] = i;
}
int cnt1 = ,cnt2 = ;
for(int i = ;i <= n;i++)
{
if(a[i] != b[i]) cnt1++;
if(a[i] != c[i]) cnt2++;
}
if(cnt1 != || cnt2 != ) swap(a[x[]],a[x[]]);
}
for(int i = ;i <= n;i++) cout << a[i] << " ";
return ;
}

C.打表每个字母增加每个数值的ans。

#include<bits/stdc++.h>
using namespace std; int n,q,ans[][] = {},cnt[];
string s; int main()
{
ios::sync_with_stdio();
cin >> n >> s >> q;
s = ' '+s;
for(char c = 'a';c <= 'z';c++)
{
memset(cnt,,sizeof(cnt));
for(int i = ;i <= n;i++)
{
cnt[i] = cnt[i-];
if(s[i] != c) cnt[i]++;
}
for(int i = ;i <= n;i++)
{
for(int j = i+;j <= n;j++)
{
ans[c][cnt[j]-cnt[i]] = max(ans[c][cnt[j]-cnt[i]],j-i);
}
}
for(int i = ;i <= n;i++) ans[c][i] = max(ans[c][i-],ans[c][i]);
}
while(q--)
{
int x;
cin >> x >> s;
cout << ans[s[]][x] << endl;
}
return ;
}

D.判断每个环在第几层,0层和偶数层的加,奇数层的减。

#include<bits/stdc++.h>
#define PI acos(-1)
using namespace std; int n,x[],y[],r[],cnt[] = {}; int main()
{
ios::sync_with_stdio();
cin >> n;
for(int i = ;i <= n;i++) cin >> x[i] >> y[i] >> r[i];
for(int i = ;i <= n;i++)
{
for(int j = ;j <= n;j++)
{
if(i == j) continue;
if(sqrt(1.0*(x[i]-x[j])*(x[i]-x[j])+1.0*(y[i]-y[j])*(y[i]-y[j])) <= r[j]-r[i]) cnt[i]++;
}
}
double ans = ;
for(int i = ;i <= n;i++)
{
if(cnt[i] == || cnt[i]%) ans += PI*r[i]*r[i];
else ans -= PI*r[i]*r[i];
}
cout << fixed << setprecision() << ans << endl;
return ;
}

Codeforces_814的更多相关文章

随机推荐

  1. 1042 字符统计 (20 分)C语言

    请编写程序,找出一段给定文字中出现最频繁的那个英文字母. 输入格式: 输入在一行中给出一个长度不超过 1000 的字符串.字符串由 ASCII 码表中任意可见字符及空格组成,至少包含 1 个英文字母, ...

  2. git简单使用指南

    git - 简易指南 这是一篇最适合初学者的教程,这里面没有高深的内容.学习git它可以帮助你管项目代码,提高团队开发效率.我使用的是win10系统,这里我会用它来给大家讲解. git - 安装 安装 ...

  3. postman 的基础使用篇(一)

    简介 postman 是接口协作开发的优秀平台,可以用来进行接口设计.构建和调试,之前以chrome插件的形式,现在也有原生APP. 安装 Native app 通过链接 download page  ...

  4. 组件与props简解

    一.创建组件 1.函数式创建 特点: 组件不能访问this对象 组件无法访问生命周期的方法 无状态组件只能访问输入的props,无副作用 function Title() { return <h ...

  5. 从零开始学asyncio(中)

    本篇文章主要是讲解asyncio模块的实现原理. 这个系列还有另外两篇文章: 从零开始学asyncio(上) 从零开始学asyncio(下) 一. asyncio模块简介 asyncio是python ...

  6. 传统远程注入线程,加载DLL

    代码根据<windows黑客编程技术详解>来的   远程DLL注入:把我们的恶意DLL强制注入到正常的进程中   每个程序执行时都会调用kernal32.dll,加载DLL时,通过Load ...

  7. Scala实践11

    1.1泛型类 泛型类是将类型作为参数的类.它们对集合类特别有用. 定义泛类型:泛型类将类型作为方括号内的参数[].一种惯例是使用字母A作为类型参数标识符,但是可以使用任何参数名称. class Sta ...

  8. IDEA使用 磨刀霍霍向代码

    工欲善其事,必先利其器 ,当下有数不清的 Java 程序员将石器时代的 Eclipse 替换成了现代化的智能开发工具 InteliJ IDEA ,写代码的小日子过得不亦乐乎(玩笑话,两者各有千秋,看个 ...

  9. 轻松理解 Kubernetes 的核心概念

    Kubernetes 迅速成为云环境中软件部署和管理的新标准. 与强大的功能相对应的是陡峭的学习曲线. 本文将提供 Kubernetes 的简化视图,从高处观察其中的重要组件,以及他们的关联. 硬件 ...

  10. Java单体应用 - Markdown - 02.基础语法

    原文地址:http://www.work100.net/training/monolithic-markdown-basic.html 更多教程:光束云 - 免费课程 基础语法 序号 文内章节 视频 ...