Codeforces Round #586 A、B、C三道简单题
凌晨开始也太难顶了八,a完三题都一点半了(B题我傻了卡了一会儿),顶不住了, 就睡了(熬夜伤肝)(›´ω`‹ )
586A. Cards
大致题意:
Serezha三岁生日的时候,收到了一堆卡片,由于他麻麻喜欢二进制,所有只有0和1,现在卡片字母顺序被打乱了,他粑粑想知道可以拼成的最大二进制数是多少。
思路:
我们仔细观察one和zero的特征字母分别是“n”和“z”,所以只要统计“n”和“z”出现的次数,然后按数量先输出1在输出0就ok了
1 #include<bits/stdc++.h> 2 using namespace std; 3 using std::bitset; 4 typedef long long ll; 5 6 int main() 7 { 8 int len; 9 while(~scanf("%d",&len)) 10 { 11 string p; 12 cin>>p; 13 int z=0,n=0; 14 for(int i=0;i<len;i++) 15 { 16 if(p[i]=='n') 17 n++; 18 else if(p[i]=='z') 19 z++; 20 } 21 while(n--) 22 cout<<"1"<<" "; 23 while(z--) 24 cout<<"0"<<" "; 25 cout<<endl; 26 } 27 return 0; 28 }
586B. Multiplication Table
题意:
给你一个n*n矩阵M,存在一个数列an,满足矩阵Mij=ai*aj,但是主对角线被挖去(给的话直接开方就行了),求出数列an。
思路:
一开始我想的是n个方程解n个未知数,后来没解出来。然后我就猜ai是第i行的最大公约数,结果发现是错的。(太蠢了)
n小于1000,实际上对于整数i∈[2,n-1],都可以在矩阵中找到M[i-1][i],M[i][i+1],M[i-1][i+1],然后用M[i-1][i]*M[i][i+1]/M[i-1][i+1]可以得到(ai)2 (这样算可能爆int)
得到a2~an-1后算a1和an就很简单了
1 #include<bits/stdc++.h> 2 using namespace std; 3 using std::bitset; 4 typedef long long ll; 5 6 ll b[1005][1005]; 7 ll a[1005]; 8 9 int main() 10 { 11 int n; 12 while(~scanf("%d",&n)) 13 { 14 memset(a,0,sizeof(a)); 15 memset(b,0,sizeof(b)); 16 for(int i=1;i<=n;i++) 17 for(int j=1;j<=n;j++) 18 scanf("%d",&b[i][j]); 19 for(int i=2;i<n;i++) 20 { 21 a[i]=sqrt((b[i-1][i]*b[i][i+1])/b[i-1][i+1]); 22 } 23 a[1]=b[1][2]/a[2]; 24 a[n]=b[1][n]/a[1]; 25 for(int i=1;i<=n;i++) 26 cout<<a[i]<<" "; 27 cout<<endl; 28 } 29 return 0; 30 }
586C. Substring Game in the Lesson
题意:
Mike and Ann玩一个游戏,有一个长度为n的字符串s和一个数字k,要求从s[k]开始向两边拓展字串,平且操作后得到的子串的字典序要比原来小,不能进行操作的人输。Ann先手,逐次输出每个k=i是的胜者。
思路:
这个博弈比较好想,因为对一个串,往后加字典序一定增大,只有往前加比这个串首字符小的字符,字典序才会减小
所以对于每个s[k]只要存在s[i]<s[k],且i<k则Ann必胜,否则必输,即Mike必胜
1 #include<bits/stdc++.h> 2 using namespace std; 3 using std::bitset; 4 5 string ans; 6 bool k[500005]; 7 8 int main() 9 { 10 while(cin>>ans) 11 { 12 k[0]=false; 13 char minn=ans[0]; 14 for(int i=1;i<ans.length();i++) 15 { 16 if(ans[i]>minn) 17 k[i]=true; 18 else 19 k[i]=false; 20 if(ans[i]<minn) 21 minn=ans[i]; 22 } 23 for(int i=0;i<ans.length();i++) 24 { 25 if(k[i]) 26 cout<<"Ann"<<endl; 27 else 28 cout<<"Mike"<<endl; 29 } 30 } 31 return 0; 32 }
后面的题,题目都没看,先留个坑 ( ‘-ωก̀ )
原文地址:https://www.cnblogs.com/Find-sunrise-dream/p/11548554.html
- python中星号的意义(**字典,*列表或元组)
- Python 实现抽象类的两种方式+邮件提醒+动态导入模块+反射(参考Django中间件源码)
- Python 实现抽象类的两种方式+邮件提醒+动态导入模块+反射(参考Django中间件源码)
- 还没开始学Python之前,你要知道,Python程序员一定会的十件事
- zabbix-server端与zabbix-agent端部署与监控
- 比特币是什么?比特币从何而来?
- Django内置Admin
- Python内置函数property()使用实例
- 区块链技术的历史发展的不同阶段
- 微信力推搜一搜,培养用户微信搜索习惯,搜一搜直接给红包
- datetime
- [转自JeffreyZhao]在LINQ to SQL中使用Translate方法以及修改查询用SQL
- Flask-SQLAlchemy
- 2017全球存储大会:存储设备面临三大挑战
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 音视频相关开发库和资料
- SpringSecurity认证专题之【AuthenticationManager】
- dotnet 让 C# 可以通过动态生成 HLSL 使用 DX12 的 GPU 并行计算库 ComputeSharp 的简介
- 比对软件STAR创建索引文件(index)
- linux|无需解压查看压缩文件内容
- R函数不会写,"抄"总会吧!
- @Resource和@Autowire的区别
- R函数,如何“抄”出水平
- 【STM32H7】第1章 当前主流的小型嵌入式GUI
- 链表反转的两种实现方法,后一种击败了100%的用户!
- envoy filter 开发实践系列 1:官网 echo 示例编译测试
- [Jmeter]---JsonPath表达式提取响应&断言
- envoy filter 开发实践系列 2:官网 http filter 示例编译测试
- 快速入门ElasticSearch
- 如何用 JS 一次获取 HTML 表单的所有字段 ?