codeforces-1176 (div3)

打div3翻车了

 

A.第一个操作是除二,第二个操作视为两下操作之后除三,第三个操作视为三下操作之后除五,直接计算贡献

#include <map>
#include <set>
#include <ctime>
#include <cmath>
#include <queue>
#include <stack>
#include <vector>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <sstream>
#include <iostream>
#include <algorithm>
#include <functional>
using namespace std;
#define For(i, x, y) for(int i=x;i<=y;i++)  
#define _For(i, x, y) for(int i=x;i>=y;i--)
#define Mem(f, x) memset(f,x,sizeof(f))  
#define Sca(x) scanf("%d", &x)
#define Sca2(x,y) scanf("%d%d",&x,&y)
#define Sca3(x,y,z) scanf("%d%d%d",&x,&y,&z)
#define Scl(x) scanf("%lld",&x);  
#define Pri(x) printf("%d\n", x)
#define Prl(x) printf("%lld\n",x);  
#define CLR(u) for(int i=0;i<=N;i++)u[i].clear();
#define LL long long
#define ULL unsigned long long  
#define mp make_pair
#define PII pair<int,int>
#define PIL pair<int,long long>
#define PLL pair<long long,long long>
#define pb push_back
#define fi first
#define se second 
typedef vector<int> VI;
int read(){int x = 0,f = 1;char c = getchar();while (c<'0' || c>'9'){if (c == '-') f = -1;c = getchar();}
while (c >= '0'&&c <= '9'){x = x * 10 + c - '0';c = getchar();}return x*f;}
const double eps = 1e-9;
const int maxn = 110;
const int INF = 0x3f3f3f3f;
const int mod = 1e9 + 7; 
LL N;
int main(){int T; Sca(T);while(T--){Scl(N);int ans = 0;while(!(N % 2)){N /= 2;ans++;}while(!(N % 3)){N /= 3;ans += 2;}    while(!(N % 5)){N /= 5;ans += 3;}if(N != 1) ans = -1;Pri(ans);} return 0;
}
A

 

B.毫无疑问先把所有数模3,整除的直接计入贡献,余1的找余2的凑一对计入贡献,最后剩下的三个凑一对计入贡献

#include <map>
#include <set>
#include <ctime>
#include <cmath>
#include <queue>
#include <stack>
#include <vector>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <sstream>
#include <iostream>
#include <algorithm>
#include <functional>
using namespace std;
#define For(i, x, y) for(int i=x;i<=y;i++)  
#define _For(i, x, y) for(int i=x;i>=y;i--)
#define Mem(f, x) memset(f,x,sizeof(f))  
#define Sca(x) scanf("%d", &x)
#define Sca2(x,y) scanf("%d%d",&x,&y)
#define Sca3(x,y,z) scanf("%d%d%d",&x,&y,&z)
#define Scl(x) scanf("%lld",&x);  
#define Pri(x) printf("%d\n", x)
#define Prl(x) printf("%lld\n",x);  
#define CLR(u) for(int i=0;i<=N;i++)u[i].clear();
#define LL long long
#define ULL unsigned long long  
#define mp make_pair
#define PII pair<int,int>
#define PIL pair<int,long long>
#define PLL pair<long long,long long>
#define pb push_back
#define fi first
#define se second 
typedef vector<int> VI;
int read(){int x = 0,f = 1;char c = getchar();while (c<'0' || c>'9'){if (c == '-') f = -1;c = getchar();}
while (c >= '0'&&c <= '9'){x = x * 10 + c - '0';c = getchar();}return x*f;}
const double eps = 1e-9;
const int maxn = 1010;
const int INF = 0x3f3f3f3f;
const int mod = 1e9 + 7; 
int N,M,K;
int a[maxn];
int b[maxn];
int main(){int T; Sca(T);while(T--){Sca(N);b[0] = b[1] = b[2] = 0;for(int i = 1; i <= N ; i ++){Sca(a[i]);a[i] %= 3;b[a[i]]++;} if(b[1] > b[2]) swap(b[1],b[2]);Pri(b[0] + b[1] + (b[2] - b[1]) / 3);}return 0;
}
B

 

C.比较套路的一个寻找子序列数量,开6个计数器即可。最后答案就是字符串长度len - 匹配成功的子序列数量 * 6

#include <map>
#include <set>
#include <ctime>
#include <cmath>
#include <queue>
#include <stack>
#include <vector>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <sstream>
#include <iostream>
#include <algorithm>
#include <functional>
using namespace std;
#define For(i, x, y) for(int i=x;i<=y;i++)  
#define _For(i, x, y) for(int i=x;i>=y;i--)
#define Mem(f, x) memset(f,x,sizeof(f))  
#define Sca(x) scanf("%d", &x)
#define Sca2(x,y) scanf("%d%d",&x,&y)
#define Sca3(x,y,z) scanf("%d%d%d",&x,&y,&z)
#define Scl(x) scanf("%lld",&x);  
#define Pri(x) printf("%d\n", x)
#define Prl(x) printf("%lld\n",x);  
#define CLR(u) for(int i=0;i<=N;i++)u[i].clear();
#define LL long long
#define ULL unsigned long long  
#define mp make_pair
#define PII pair<int,int>
#define PIL pair<int,long long>
#define PLL pair<long long,long long>
#define pb push_back
#define fi first
#define se second 
typedef vector<int> VI;
int read(){int x = 0,f = 1;char c = getchar();while (c<'0' || c>'9'){if (c == '-') f = -1;c = getchar();}
while (c >= '0'&&c <= '9'){x = x * 10 + c - '0';c = getchar();}return x*f;}
const double eps = 1e-9;
const int maxn = 5e5 + 10;
const int INF = 0x3f3f3f3f;
const int mod = 1e9 + 7; 
int N,M,K;
int a[maxn];
const int b[10] = {0,4,8,15,16,23,42};
int dp[maxn];
int main(){Sca(N);for(int i = 1; i <= N ; i ++) Sca(a[i]);dp[0] = INF;for(int i = 1; i <= N ; i ++){for(int j = 1; j <= 6; j ++){if(b[j] == a[i] && dp[j - 1]){dp[j - 1]--;dp[j]++;}}}Pri(N - dp[6] * 6);return 0;
}
C

 

D.将所有数从大到小排序然后扫描,遇到的当前最大的数如果是素数说明是一个小素数变过来的,否则说明他要变成他最大的因子。

直接递推即可。

#include <map>
#include <set>
#include <ctime>
#include <cmath>
#include <queue>
#include <stack>
#include <vector>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <sstream>
#include <iostream>
#include <algorithm>
#include <functional>
using namespace std;
#define For(i, x, y) for(int i=x;i<=y;i++)  
#define _For(i, x, y) for(int i=x;i>=y;i--)
#define Mem(f, x) memset(f,x,sizeof(f))  
#define Sca(x) scanf("%d", &x)
#define Sca2(x,y) scanf("%d%d",&x,&y)
#define Sca3(x,y,z) scanf("%d%d%d",&x,&y,&z)
#define Scl(x) scanf("%lld",&x);  
#define Pri(x) printf("%d\n", x)
#define Prl(x) printf("%lld\n",x);  
#define CLR(u) for(int i=0;i<=N;i++)u[i].clear();
#define LL long long
#define ULL unsigned long long  
#define mp make_pair
#define PII pair<int,int>
#define PIL pair<int,long long>
#define PLL pair<long long,long long>
#define pb push_back
#define fi first
#define se second 
typedef vector<int> VI;
int read(){int x = 0,f = 1;char c = getchar();while (c<'0' || c>'9'){if (c == '-') f = -1;c = getchar();}
while (c >= '0'&&c <= '9'){x = x * 10 + c - '0';c = getchar();}return x*f;}
const double eps = 1e-9;
const int maxn = 3e6 + 10;
const int INF = 0x3f3f3f3f;
const int mod = 1e9 + 7; 
int N,M,K;
int a[maxn];
int prime[maxn];
int pos[maxn];
bool isprime[maxn];
void init(){for(int i = 2 ; i <= 2750131; i ++) isprime[i] = 1;int cnt = 0;for(int i = 2 ; i <= 2750131; i ++){if(!isprime[i]) continue;prime[++cnt] = i;pos[i] = cnt;for(int j = i + i; j <= 2750131; j += i) isprime[j] = 0;}
}
int delnum[maxn];
int find(int x){for(int i = 2; i <= x; i ++){if(!(x % i)) return max(i,x / i);}return 1;
}
int main(){Sca(N); init();for(int i = 1; i <= N * 2 ; i ++) Sca(a[i]);sort(a + 1,a + 1 + N * 2);for(int i = N * 2; i >= 1; i --){if(delnum[a[i]]){delnum[a[i]]--;continue;}if(isprime[a[i]]){delnum[pos[a[i]]]++;printf("%d ",pos[a[i]]);}else{int n = find(a[i]);delnum[n]++;printf("%d ",a[i ]);}}return 0;
}
D

 

E.一看是个最小点覆盖,仔细看看发现没有要求最小,只是找一个点覆盖。

对原图进行一手黑白染色,然后白点集合和黑点集合必定有一个符合答案,取集合元素数量较小的那个集合输出。

#include <map>
#include <set>
#include <ctime>
#include <cmath>
#include <queue>
#include <stack>
#include <vector>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <sstream>
#include <iostream>
#include <algorithm>
#include <functional>
using namespace std;
#define For(i, x, y) for(int i=x;i<=y;i++)  
#define _For(i, x, y) for(int i=x;i>=y;i--)
#define Mem(f, x) memset(f,x,sizeof(f))  
#define Sca(x) scanf("%d", &x)
#define Sca2(x,y) scanf("%d%d",&x,&y)
#define Sca3(x,y,z) scanf("%d%d%d",&x,&y,&z)
#define Scl(x) scanf("%lld",&x);  
#define Pri(x) printf("%d\n", x)
#define Prl(x) printf("%lld\n",x);  
#define CLR(u) for(int i=0;i<=N;i++)u[i].clear();
#define LL long long
#define ULL unsigned long long  
#define mp make_pair
#define PII pair<int,int>
#define PIL pair<int,long long>
#define PLL pair<long long,long long>
#define pb push_back
#define fi first
#define se second 
typedef vector<int> VI;
int read(){int x = 0,f = 1;char c = getchar();while (c<'0' || c>'9'){if (c == '-') f = -1;c = getchar();}
while (c >= '0'&&c <= '9'){x = x * 10 + c - '0';c = getchar();}return x*f;}
const double eps = 1e-9;
const int maxn = 2e5 + 10;
const int INF = 0x3f3f3f3f;
const int mod = 1e9 + 7; 
int N,M,K;
struct Edge{int to,next;
}edge[maxn * 2];
int head[maxn],tot;
int color[maxn];
vector<int>w[2];
void init(){for(int i = 0 ; i <= N ; i ++){color[i] = head[i] = -1;}w[0].clear(); w[1].clear();tot = 0;
}
void add(int u,int v){edge[tot].to = v;edge[tot].next = head[u];head[u] = tot++;
}
void dfs(int t){for(int i = head[t]; ~i ; i = edge[i].next){int v = edge[i].to;if(color[v] != -1) continue;color[v] = 1 ^ color[t];dfs(v);}
}
int main(){int T; Sca(T);while(T--){Sca2(N,M); init();for(int i = 1; i <= M ; i ++){int u,v; Sca2(u,v);add(u,v); add(v,u);}for(int i = 1; i <= N ; i ++){if(color[i] == -1){color[i] = 0;dfs(i);}}for(int i = 1; i <= N ; i ++) w[color[i]].push_back(i);if(w[0].size() > w[1].size()) swap(w[0],w[1]);Pri(w[0].size());for(int i = 0 ; i < w[0].size(); i ++){printf("%d ",w[0][i]);}puts("");}return 0;
}
E

 

转载于:https://www.cnblogs.com/Hugh-Locke/p/11140861.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/410899.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微软CRM 2011 Beta 新功能之二:不同组织不同基本语言

微软CRM 4.0就开始提供对多语言的支持&#xff0c;在安装微软CRM 4.0时需要选择不同语言的安装程序&#xff0c;安装完成后该部署服务器上默认组织以及任何新建组织的基本语言跟安装程序的语言一致。虽然我们可以在服务器上安装多个语言包&#xff0c;使用户可以选择要使用的语…

php教育项目,六星教育:如何在PHP项目实战中取胜,获得腾讯等大厂的offer

原标题&#xff1a;六星教育&#xff1a;如何在PHP项目实战中取胜&#xff0c;获得腾讯等大厂的offer我们在进行PHP学习的时候&#xff0c;总会强调实战的重要性。事实也是如此&#xff0c;如果光知道理论知识&#xff0c;而缺乏实际项目的参与与运作&#xff0c;就会变得纸上谈…

u盘运行linux系统卡住了,从U盘运行Linux操作系统的三种方法

从U盘运行Linux操作系统的三种方法你或许听说过在U盘上运行live Linux操作系统&#xff0c;但你知不知道可以永久的保存运行时的数据&#xff0c;或者直接将Linux安装到U盘&#xff1f;本文将介绍把Linux装进口袋(U盘)的三种方法&#xff0c;挑一种你最喜欢的方法吧&#xff01…

linux分区从1开始,Linux 学习笔记 1 使用最小的系统,从分区安装系统开始

我们常用的linux系统在安装过程中大多都省略了对系统进行分区的操作&#xff0c;以至于后期&#xff0c;不了解什么是分区以及分区当中最基本的一些概念&#xff0c;我们不说最细的知识&#xff0c;只求了解这个过程&#xff0c;那直接步入正题&#xff0c;开始第一节的学习。开…

理解Javascript_02_理解undefined和null

来自普遍的回答: 其实在 ECMAScript 的原始类型中&#xff0c;是有Undefined 和 Null 类型的。 这两种类型都分别对应了属于自己的唯一专用值&#xff0c;即undefined 和 null。 值 undefined 实际上是从值 null 派生来的&#xff0c;因此 ECMAScript 把它们定义为相等的&#…

《图解CSS3:核心技术与案例实战》

《图解CSS3&#xff1a;核心技术与案例实战》 基本信息 作者&#xff1a; 大漠 丛书名&#xff1a; Web开发技术丛书 出版社&#xff1a;机械工业出版社 ISBN&#xff1a;9787111469209 上架时间&#xff1a;2014-7-2 出版日期&#xff1a;2014 年7月 开本&#xff1a;16开 …

kali linux重启网络服务报错,Web安全学习笔记之在Kali Linux上安装Openvas以及启动失败修复...

现在用的kali linux是2018.1的版本&#xff0c;在安装openvas的时候报错&#xff0c;无法通过网络下载和安装openvas。主要错误是源配置错误&#xff0c;可能现在用的kali很久没更新了。一、解决和配置更新源问题apt-get upgrade报错显示无法更新&#xff0c;apt-get install o…

Rstudio调用plot()函数时,出现错误的处理方法

按照书上的例子敲出代码后&#xff0c;发现Rstudio无法识别C盘user文件夹下的中文用户名。如下图所示&#xff1a; 按照网上的做法&#xff0c;尝试修改计算机user下的用户名&#xff0c;没修改成功。 另一种做法是在plot()函数前面加上一句dev.new(),便可绘制成功&#xff0c;…

linux火狐浏览器49.0安装教程,火狐浏览器Linux最新版下载

火狐浏览器是一款免费开源的跨平台浏览器&#xff0c;firefox for linux引入了扩展同步机制用户能够在家用电脑和办公电脑之间进行无缝同步&#xff0c;能给用户更为流畅和高速的上网浏览体验&#xff0c;同时也让开发者能够开发出更为快速的网络应用和网站&#xff0c;有需要的…

PPA格式Linux安装,Ubuntu12.04 用PPA安装fcitx和搜狗输入法附加组件Linux版

最近Linux的世界中&#xff0c;让人兴奋的就是LinuxDeepin12.1 Beta的发布&#xff0c;但最让人欢喜的就是随之而来的”搜狗输入法Linux版“。网上流传的在Ubuntu下安装搜狗输入法的方法实在是恼人&#xff0c;不仅安装的deb包包多多&#xff0c;而且不能apt-get update 更新。…

Windows Server 2008 系统上c#读取Excel遭遇“用户代码未处理 ComException”错误

以前用代码读取Excel的时候从没有遇到过此错误&#xff0c;开始以为是权限问题&#xff0c;但是用普通的Console Application时却能够读取&#xff0c;放到web application里面就出现此错误&#xff1a; 导致错误的是第三行&#xff1a; object missing Missing.Value;Excel.A…

linux dialog 源码,Linux dialog详解(图形化shell)

4.密码框格式&#xff1a;dialog --passwordbox text height width [init]例子&#xff1a;12# dialog --title "Password" --passwordbox \"Please give a password for the new user:"1035这样我们的密码就暴露出来了&#xff0c;是不是很不安全&#…

ubifs开销测试

问题 在板子上观察到56M的ubi卷&#xff0c;挂载上ubifs之后&#xff0c;df -h显示可用空间约为50M。 如此计算开销超过了10%&#xff0c;那么这个开销随容量如何变化呢&#xff0c;是固定为10%吗还是有其他规律&#xff1f; 理论计算 简单查了下资料&#xff0c;没找到明确的计…

C# 使用数据库SQLite

1.数据库下载地址 http://sqlite.phxsoftware.com/ 2.下载完成添加引用System.Data.SQLite.dll 3.SQLite操作通用类 代码 usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Data.SQLite;usingSystem.Data;usingSystem.Data.Common;namespacePNet{ …

linux系统安装arcsde,Linux操作系统安装ArcSDE10

测试sde用户是否可以连通[Oraclelocalhost ~]$ sqlplus sde/sdeorclSQL*Plus: Release 11.2.0.1.0 Production on Wed Feb 22 11:46:18 2012Copyright (c) 1982, 2009, Oracle. All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 …

28 | 读写分离有哪些坑?

在上一篇文章中&#xff0c;我和你介绍了一主多从的结构以及切换流程。今天我们就继续聊聊一主多从架构的应用场景&#xff1a;读写分离&#xff0c;以及怎么处理主备延迟导致的读写分离问题。 我们在上一篇文章中提到的一主多从的结构&#xff0c;其实就是读写分离的基本结构了…

NOIP2003提高组

第一题 神经网络 【题目描述】 人工神经网络&#xff08;Artificial Neural Network&#xff09;是一种新兴的具有自我学习能力的计算系统&#xff0c;在模式识别、函数逼近及贷款风险评估等诸多领域有广泛的应用。对神经网络的研究一直是当今的热门方向&#xff0c;兰兰同学在…

巧妙解决element-ui下拉框选项过多的问题

1. 场景描述 不知道你有没有这样的经历&#xff0c;下拉框的选项很多&#xff0c;上万个选项甚至更多&#xff0c;这个时候如果全部把数据放到下拉框中渲染出来&#xff0c;浏览器会卡死&#xff0c;体验会特别不好 用人会说element-ui的select有一个remote-method&#xff0c;…

【2019年07月08日】A股最便宜的股票

查看更多A股最便宜的股票&#xff1a;androidinvest.com/CNValueTop/ 便宜指数 PE PB 股息 ROE&#xff0c;四因子等权&#xff0c;数值越大代表越低估。 本策略只是根据最新的数据来选股&#xff0c;完全无人工参与的过程&#xff0c;所以并不能对接下来的利润或业绩做预测…

Sharepoint 2010新体验之一-----基于Claims的全新验证机制

在SharePoint Server 2007中世界中&#xff0c;如果我们想在一个Web应用程序中并存多种验证机制&#xff0c;只能通过“扩展Web应用程序”来实现&#xff0c;这种方式实现上是通过不同的应用程序来交互同一内容数据库。但是在SharePoint 2010中&#xff0c;我们看到了新的身份验…