CF-1093 (2019/02/10)
CF-1093
1093A - Dice Rolling
- 输出x/2即可
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t; cin >> t;
while (t--)
{
int x; cin >> x;
cout << x / 2 << endl;
}
return 0;
}
1093B - Letters Rearranging
- 当且仅当字符串中所有字符都相同时,答案为-1
ans!=-1时,我们可以对字符排个序,然后输出即可。
#include <bits/stdc++.h>
using namespace std;
int t;
char s[1010];
int main(){
cin>>t;
while(t--){
cin>>s;
int flag = 0,len = strlen(s);
for(int i=1;i<len;i++){
if(s[i]!=s[0]){
flag = 1;break;
}
}
if(flag == 0)
printf("-1\n");
else{
sort(s,s+len);
cout<<s<<endl;
}
}
return 0;
}
1093C - Mishka and the Last Exam
- 贪心,每次都让右边尽量大(或者让左边尽量小)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,x;
ll a[200100];
int main(){
cin>>n>>x;
a[1] = 0,a[n]=x;
for(int i=2;i<=n/2;i++){
cin>>x;
if(x>=a[i-1]+a[n-i+2]){
a[i] = x - a[n-i+2];
a[n-i+1] = a[n-i+2];
}
else{
a[i] = a[i-1];
a[n-i+1] = x-a[i];
}
}
for(int i=1;i<=n;i++)
printf("%lld ",a[i]);
puts("");
return 0;
}
1093D - Beautiful Graph
- 给定一个图,相邻两点权值奇偶性不同,权值只能为{1,2,3}。问有多少中赋权值的方法
- 对于每一个联通块,先假设出发结点为奇数,那么与之相连的点都为偶数,bfs一遍即可算出有多少点为奇数,假设奇数为a个,偶数为b个,则该联通块方法数为:\(a^2+b^2\)
- 不同的联通块答案相乘即可
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod = 998244353;
int T,n,m;
vector<int> v[300010];
int vis[300010];
inline ll fast_pow(ll a,ll b){
ll ans = 1%mod;
for(;b;b>>=1){
if(b&1) ans = (ans*a)%mod;
a = (a*a)%mod;
}
return ans;
}
ll bfs(int x){
vis[x] = 1;
queue<int> q;
q.push(x);
int sum = 0,num = 0;//sum为该联通块总数,num为奇数个数
while(!q.empty()){
int u = q.front();q.pop();
sum++;
if(vis[u]==1)num++;
for(int i=0;i<v[u].size();i++){
int y = v[u][i];
if(vis[y]!=0){
//如果已经被访问过的v与u奇偶性相同,则返回0.最终答案也为0
if(vis[y]+vis[u]!=3){
return 0;
}
continue;
}
vis[y] = 3-vis[u];
q.push(y);
}
}
ll ans = (fast_pow(2,num)+fast_pow(2,sum-num))%mod;
return ans;
}
int main(){
cin>>T;
while(T--){
cin>>n>>m;
for(int i=1;i<=n;i++){
v[i].clear();
vis[i] = 0;
}
for(int i=1,x,y;i<=m;i++){
scanf("%d%d",&x,&y);
v[x].push_back(y);
v[y].push_back(x);
}
ll ans = bfs(1);
for(int i=1;i<=n;i++){
if(!vis[i]){
ans = (ans*bfs(i))%mod;
}
}
cout<<ans<<endl;
}
return 0;
}
CF-1093 (2019/02/10)的更多相关文章
- 开机时自动启动的AutoHotkey脚本 2019年10月09日
;;; 开机时自动启动的AutoHotkey脚本 2019年10月09日;; http://www.autoahk.com/archives/16600; https://www.cnblogs.co ...
- Java学习之JDBC 2019/3/10
Java学习之JDBC 大部分的程序都是用来通过处理数据来达到人们预期的效果,数据是粮食,没有数据操作的程序就像helloworld程序一样没有用处.因此数据库操作是重中之重,是程序发挥功能的基石,j ...
- 07/29/2013 02:10:02 AM - CMDPHP: Poller[0] Host[6] DS[10] WARNING: Result from SNMP not valid. Partial Result: U
snmpwalk -c public -v2c 客户端ip地址 自定义的oid 能取到数据,但是服务器端就是图片一片空白 rrdtool fetch 文件名.rrd 查看到的全都是nan cac ...
- 梦想MxWeb3D协同设计平台 2019.02.28更新
梦想MxWeb3D协同设计平台 2019.02.28更新 SDK开发包下载地址: http://www.mxdraw.com/ndetail_10130.html 在线演示网址: http://www ...
- SPSS 2019年10月24日 今日学习总结
2019年10月24日今日课上内容1.SPSS掌握基于键值的一对多合并2.掌握重构数据3.掌握汇总功能 内容: 1.基于键值的一对多合并 合并文件 添加变量 合并方法:基于键值的一对多合并 变量 2. ...
- 终端、mac等小技巧——2019年10月18日
1.新建finder窗口 cmd+N 2.查看文件夹结构 brew install tree tree命令行参数(只实用与安装了tree命令行工具): -a 显示所有文件和目录. -A 使用ASNI绘 ...
- mac文本操作小技巧——2019年10月17日
声明:看的别人博主写的,自己整理的,非原创,只是自用. mac文本操作技巧 官方指导文档:https://support.apple.com/zh-cn/HT201236 1.光标移动 1.1 行首. ...
- Linux自用指令——2019年10月23日
1.ls ls命令是列出目录内容(List Directory Contents)的意思.运行它就是列出文件夹里的内容,可能是文件也可能是文件夹. ls -a 列出目录所有文件,包含以.开始的隐藏文件 ...
- Gitbook环境搭建及制作——2019年10月24日
1.gitbook介绍 GitBook 是一个基于 Node.js 的命令行工具,支持 Markdown 和 AsciiDoc 两种语法格式,可以输出 HTML.PDF.eBook 等格式的电子书.可 ...
随机推荐
- 剑指Offer的学习笔记(C#篇)-- 数组中只出现一次的数字
题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 题目给定:num1,num2分别为长度为1的数组.传出参数:将 num1[0], num2[0 ...
- [Android]Android性能优化
安卓性能优化 性能优化的几大考虑 Mobile Context 资源受限 + 内存,普遍较小,512MB很常见,开发者的机器一般比用户的机器高端 + CPU,核心少,运算能力没有全开 + GPU,上传 ...
- ]NET Core Lucene.net和PanGu分词实现全文检索
Lucene.net和PanGu分词实现全文检索 Lucene.net(4.8.0) 学习问题记录五: JIEba分词和Lucene的结合,以及对分词器的思考 前言:目前自己在做使用Lucene. ...
- AtCoder Regular Contest 075 2017年6月4日 C、D、E题解
http://arc075.contest.atcoder.jp/assignments 昨晚做的atcoder,今天写个简单题解. F题不会做,800point的,就跪了,要等zk大佬来做.zk能做 ...
- CUBE 隐藏维度中的Unknown
纬度,属性里面有个unknowmember设置为hidden
- spring assert 用法
spring在提供一个强大的应用开发框架的同时也提供了很多优秀的开发工具类,合理的运用这些工具,将有助于提高开发效率.增强代码质量.下面就最常用的Assert工具类,简要介绍一下它的用法.Assert ...
- Centos7.2内网环境安装MySQL5.7.24
1.配置本地yum源 内网环境,首先需要配置本地yum源,以解决MySQL的依赖安装,具体参考该文:点击打开 2.查看服务器环境 uname -a 3.去官网下载MySQL安装包 MySQL官网网址: ...
- 网络编程之异步IO,rabbitMQ笔记
对于网络并发编程而言,多线程与多进程算是最常见的需求场景了.毕竟网站开放就是想要更多的流量访问的. 回顾 回顾下之前学过的关于线程,进程和协程的知识点 IO密集型任务--用多线程更好计算密集型任务-- ...
- Lodop套打
记录一下Lodop套打模板 实现打印功能需电脑已经连接打印机(打印什么类型的东西就连接相应的打印机 (普通大打印机 打印标签 打印发票各种打印机))和已经安装好lodop控件 控件可到官网进行下载 h ...
- Linux netstat命令详解和使用例子(显示各种网络相关信息)
netstat命令用于显示与IP.TCP.UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况.netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP ...