Codeforces_794
A.统计两个guard之间的钞票数。
#include<bits/stdc++.h>
#define MOD 1000000009
using namespace std; int a,b,c,n; int main()
{
ios::sync_with_stdio(false);
cin >> a >> b >> c >> n;
int ans = ;
while(n--)
{
int x;
cin >> x;
if(b < x && x < c) ans++;
}
cout << ans << endl;
return ;
}
B.面积x倍,边长sqrt(x)倍。
#include<bits/stdc++.h>
#define MOD 1000000009
using namespace std; int n,h; int main()
{
ios::sync_with_stdio(false);
cin >> n >> h;
for(int i = ;i < n;i++)
{
cout << fixed << setprecision() << h*sqrt(1.0*i/n) << " ";
}
cout << endl;
return ;
}
C.首先可以得知,选取s1中最小的(n+1)/2个,s2中最大的n/2个,整个过程有以下两步骤。
1.当s1中最小的比s2中最小的要小是,显然,s1每次选最小的放在串首,s2每次选最小的放在串首。
2.否则,s1每次选最大的放在串尾,s2每次选最大的放在串尾。
#include<bits/stdc++.h>
using namespace std; string s1,s2; int main()
{
ios::sync_with_stdio(false);
cin >> s1;
sort(s1.begin(),s1.end());
cin >> s2;
sort(s2.begin(),s2.end());
reverse(s2.begin(),s2.end());
int n = (s1.length()+)/,m = s1.length()/;
int now1 = ,now2 = ;
char ans[] = {};
int num = ,l = ,r = s1.length()-;
while(num < s1.length() && s1[now1] < s2[now2])
{
if(num% == ) ans[l++] = s1[now1++];
else ans[l++] = s2[now2++];
num++;
}
now1 = n-,now2 = m-;
while(num < s1.length())
{
if(num% == ) ans[r--] = s1[now1--];
else ans[r--] = s2[now2--];
num++;
}
cout << ans << endl;
return ;
}
D.用hash缩点,之后的图每个点最多只能有两条边,dfs。
#include<bits/stdc++.h>
using namespace std; int n,m;
int hashh[],pre[],ans[] = {},vis[] = {},visc[] = {};
vector <int> v[]; void dfs(int now)
{
vis[now] = true;
if(ans[now] == ) return;
for(int i = ;i < v[now].size();i++)
{
int t = v[now][i];
if(hashh[t] == hashh[now]) ans[t] = ans[now];
}
for(int i = ;i < v[now].size();i++)
{
int t = v[now][i];
if(vis[t]) continue;
if(!ans[t])
{
if(!visc[ans[now]-])
{
visc[ans[now]-] = ;
ans[t] = ans[now]-;
}
else if(!visc[ans[now]+])
{
visc[ans[now]+] = ;
ans[t] = ans[now]+;
}
}
dfs(t);
}
} int main()
{
ios::sync_with_stdio();
cin >> n >> m;
pre[] = ;
for(int i = ;i <= n;i++) pre[i] = pre[i-]*+i;
for(int i = ;i <= n;i++) hashh[i] = pre[i];
for(int i = ;i <= m;i++)
{
int x,y;
cin >> x >> y;
v[x].push_back(y);
v[y].push_back(x);
hashh[x] += pre[y];
hashh[y] += pre[x];
}
ans[] = ;
visc[] = ;
dfs();
for(int i=;i<=n;i++)
{
if(!ans[i])
{
cout << "NO" << endl;
return ;
}
}
cout << "YES" << endl;
for(int i = ;i <= n;i++) cout << ans[i] << " ";
cout << endl;
return ;
}
Codeforces_794的更多相关文章
随机推荐
- 【Python3爬虫】突破反爬之应对前端反调试手段
一.前言 在我们爬取某些网站的时候,会想要打开 DevTools 查看元素或者抓包分析,但按下 F12 的时候,却出现了下面这一幕: 此时网页暂停加载,自动跳转到 Source 页面并打开了一个 ...
- Python 愤怒的小鸟代码实现:物理引擎pymunk使用
游戏介绍 最近比较忙,周末正好有时间写了python版本的愤怒的小鸟,使用了物理引擎pymunk,图片资源是从github上下载的,实现了一个可玩的简单版本. 功能实现如下: 支持小鸟类型:红色小鸟, ...
- 变量内容的删除、取代与替换(optional)
这部分内容非常繁琐且不易记忆且枯燥,用到来查询即可. 1.变量内容的删除 这一部分比较细枝末节,就不再一一手打了,贴范例图片 #:符合取代文字的最短的一个 ##:符合取代文字的最长的一个 2.变量内容 ...
- Shell脚本实现DB2数据库表导出到文件
该Shell脚本用于实现将DB2数据库表导出到文件,将在另一篇博文<Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件>中通过Java代码实现调用该脚本并传入参数. #! ...
- GPU图形绘制管线简介
(阅读GPU+编程与CG+语言之阳春白雪下里巴人所得总结) GPU图形绘制管线是描述GPU渲染(把三维世界显示为屏幕上的二维图像)的流程,主要分为三个主要阶段应用程序阶段.几何阶段.光栅阶段. 1.应 ...
- P1640 [SCOI2010]连续攻击游戏 二分图最大匹配 匈牙利算法
题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性.并且每种装备 ...
- 【译】如何使用Vue过渡效果来提升用户体验
在Vue应用中添加过渡效果是一个可以使你的项目感觉更专业的简单方法.通过提升用户体验,可以使你的网站留住更多的用户以及提高转化率. 只需要简单的处理就可以获得巨大的回报,何乐而不为? 在这个指南中,我 ...
- Nest.js你学不会系列-初识Nest
前言 最近在学习研究 Nest 框架,但是在学习过程中除了参考翻阅官方文档外国内几乎没有多少资料能系统的讲解 Nest 的相关内容,所以打算想通过我自己学习的角度讲解下 Nest 框架,不知道能坚持多 ...
- <c:forEach /c:forEach>中varStatus的作用
varStatus封装了当前遍历的状态,可以从该对象上查看是遍历到了第几个元素举例如下 <c:forEach items="${cs}" var="c" ...
- [bzoj2668] [洛谷P3159] [cqoi2012] 交换棋子
Description 有一个n行m列的黑白棋盘,你每次可以交换两个相邻格子(相邻是指有公共边或公共顶点)中的棋子,最终达到目标状态.要求第i行第j列的格子只能参与mi,j次交换. Input 第一行 ...