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 等格式的电子书.可 ...
随机推荐
- UVALive - 3695 Distant Galaxy
InputThere are multiple test cases in the input file. Each test case starts with one integer N, (1 ≤ ...
- SublimeText3 snippet 编写总结
SublimeText3 snippet 编写总结 SublimeText的snippet定义功能也十分强大, 类似VAssist. 在菜单tool->New Snippet中定义. 打开后显 ...
- 利用sizeof,得到二维数组的维度
#include <iostream> #include <stdlib.h> using namespace std; int main() { ][]; cout < ...
- LOJ 2288「THUWC 2017」大葱的神力
LOJ 2288「THUWC 2017」大葱的神力 Link Solution 比较水的提交答案题了吧 第一个点爆搜 第二个点爆搜+剪枝,我的剪枝就是先算出 \(mx[i]\) 表示选取第 \(i \ ...
- NET Core Web发布包
给ASP.NET Core Web发布包做减法 https://www.cnblogs.com/sheng-jie/p/9122582.html 1.引言 紧接上篇:ASP.NET Core Web ...
- python 6 循环
循环 要计算1+2+3,我们可以直接写表达式: >>> 1 + 2 + 3 6 要计算1+2+3+...+10,勉强也能写出来. 但是,要计算1+2+3+...+10000,直接写表 ...
- Java 多线程概念
1.为什么要使用多线程: 更多的处理器核心. 更快的响应时间. 更好的变成模型. 2.线程的优先级: 现代操作系统基本采用时分的形式调度运行的线程,操作系统会分出一个个的时间片,线程会分配到若干时间片 ...
- IO流----File,递归,字节流,字符流
要把数据持久化存储,就需要把内存中的数据存储到内存以外的其他持久化设备(硬盘.光盘.U盘等)上. 当需要把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作. 当把持久设备上的数据读 ...
- zblog忘记后台密码怎么办 官方解决方案
刚装的zblog还没开始研究,结果发现密码弄错了进不去后台,也是醉了 为节省时间,直接用官方方案,就是一个无密码进后台的文件.下载后把文件上传至网站根目录,然后直接访问后台修改密码 zblog密码找回 ...
- 【虚拟机-网络IP】使用 Powershell 设置 VNET 中的静态 IP
本文包含以下内容 对已有虚机设置静态 Internal IP 取消对对已有虚机设置的静态 Internal IP 创建静态 Internal IP的虚机 使用中的注意点 请注意:以下操作需要下载最新版 ...