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 ;
}

最新文章

  1. 如何选择PHP框架?
  2. Java基础:三目运算符
  3. Window系统性能获取帮助类
  4. Linux常见疑难问答
  5. Spring学习 Ioc篇(一 )
  6. MQ使用几个命令
  7. Django settings — Django 1.6 documentation
  8. Qt-获取主机网络信息之QHostInfo
  9. HTML5 Canvas核心技术—图形、动画与游戏开发.pdf8
  10. [技术翻译]Guava官方文档Ordering
  11. 324篇CSS应用效果集合(梦想天空,可同时应用于Web开发与Qt界面开发)
  12. ButterKnife使用小结
  13. javascript基础(三)运算
  14. 项目架构开发:数据访问层之Repository
  15. 读书笔记---HTML5实战 MARCO CASARIO(前六章)
  16. 最详细的div边距合并的问题和解决方法
  17. Postman A请求的返回值作为B请求的入参( 拢共分三步)
  18. css属性在ie6,7,8下的区分
  19. 浅谈Java的学习
  20. Installshield相关的后续操作&lt;一&gt;图解

热门文章

  1. 小白学 Python 爬虫(34):爬虫框架 Scrapy 入门基础(二)
  2. IDEA错误: 找不到或无法加载主类
  3. Vim区块选择
  4. 【tf.keras】使用手册
  5. Netty快速入门(01)Linux I/O模型介绍
  6. 【转】常见Java面试题 – 第三部分:重载(overloading)与重写(overriding)
  7. 测试工具Fiddler(三)—— 常见功能介绍
  8. Mysql.新建数据库和用户
  9. Jenkins-k8s-helm-harbor-githab-mysql-nfs微服务发布平台实战
  10. angular 构建可以动态挂载的配置服务