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,一经查实,立即删除!

相关文章

oracle的工具cmd,数据库命令行工具DBCLI

转换日期有点问题。column trans_low format a20column trans_high format a20column data_default format a20SELECT--owner,-- table_name,column_name,data_type,data_length,nullable,num_distinct,density,sample_size,CASEWHEN data_type IN (CHAR, VARCHAR2)THE…

[html] 你能否画出一个0.5px的直线?

[html] 你能否画出一个0.5px的直线&#xff1f; 通过scale(0.5)来实现个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

VS2008 正式版 下载+ KEY 注册码

微软官方下载 http://www.microsoft.com/downloads/details.aspx?displaylangzh-cn&FamilyIDd95598d7-aa6e-4f24-82e3-81570c5384cb 中文 MSDN Library for Visual Studio 2008 http://www.microsoft.com/downloads/details.aspx?displaylangzh-cn&FamilyID6ff3bc60-…

微软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;就会变得纸上谈…

[html] 制作一个页面时,需要兼容PC端和手机端,你是要分别做两个页面还是只做一个页面自适应?为什么?说说你的理由

[html] 制作一个页面时&#xff0c;需要兼容PC端和手机端&#xff0c;你是要分别做两个页面还是只做一个页面自适应&#xff1f;为什么&#xff1f;说说你的理由 两个页面 pc端布局和交互行为跟移动端不一样&#xff0c; 两个页面反而更好维护个人简介 我是歌谣&#xff0c;欢…

Silverlight学习笔记(一)——Silverlight够酷吗?

2007年底&#xff0c;微软推出了Silverlight1.0&#xff0c;在RIA领域小试牛刀。如今&#xff0c;Silverlight的成长速度已经超过了人们当初的想象。其一体化的编程方式、与JavaScript和Asp.Net的无缝集成功能&#xff0c;强大的应用层美工、设计工具&#xff0c;已经让众多开发…

方法有多少个参数才算多?

小弟有这样一个方法&#xff0c;按页大小和页索引查询产品&#xff0c;如下。 ///<summary>///获取产品///</summary>///<param name"manufacturerID">厂商ID&#xff0c;为null时不做查询条件。</param>///<param name"categoryID&…

[html] 如何实现页面背景图固定不动,不跟随滚动条滚动?

[html] 如何实现页面背景图固定不动&#xff0c;不跟随滚动条滚动&#xff1f; background-attachment: fixed个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

oracle数据库纵表设计,oracle 数据库设计-数据库表设计

在数据库设计中&#xff0c;我的工作中经常会分析怎样商业逻辑中的表格如何设计。再设计表的关系之前 需要先了解关系型数据库特点1关系型数据库&#xff0c;是指采用了关系模型来组织数据的数据库&#xff1b;2、关系型数据库的最大特点就是事务的一致性&#xff1b;3、简单来…

汇编语言复习摘要二——寄存器

CPU中的主要部件是寄存器&#xff0c;寄存器是CPU中程序员可以用指令来读写的部件。通过改变各种寄存器中的内容来实现对CPU的控制。8086CPU有14个寄存器&#xff0c;这里不一一列举。 1. 通用寄存器&#xff1a;8086CPU的所有寄存器都是16位的&#xff0c;也就是可以存放两个字…

ListString^^ 引用空间

莫名其妙报错 需要在.h和.cpp文件中都引用&#xff1a; using namespace System::Collections;using namespace System::Collections::Generic;转载于:https://www.cnblogs.com/dot-dot-123/p/3481717.html

[html] 如何实现默认显示git的第一帧图片,当鼠标经过时,播放完整的gif动画

[html] 如何实现默认显示git的第一帧图片&#xff0c;当鼠标经过时&#xff0c;播放完整的gif动画 准备一个静态第一帧的 img 图片&#xff0c;和gif完整图片&#xff0c;来回切换&#xff0c;就可以完成效果个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃…

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

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

全屏模式

<mx:Button label"全屏" click"stage.displayState StageDisplayState.FULL_SCREEN" /> <mx:Button label"窗口" click"stage.displayState StageDisplayState.NORMAL" /> <mx:Button label"全屏交互" cli…

[html] html页面中如何实现gif图片重新播放?

[html] html页面中如何实现gif图片重新播放&#xff1f; 因为浏览器会缓存图片&#xff0c;所以对于一次性gif如果不做处理的话&#xff0c;只会播放一次。如果需要重新播放gif&#xff0c;重新设置下img标签的src属性即可个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前…

python 绘图与可视化 Graphviz 二叉树 、 error: Microsoft Visual C++ 14.0 is required

需要对二叉树的构建过程进行可视化&#xff0c;发现了这个Graphviz软件&#xff0c;他对描绘数据间的关系十分擅长。 下载链接&#xff1a;https://graphviz.gitlab.io/_pages/Download/Download_windows.html 安装好后需要把安装路径添加到Path中 下载python的插件graphviz 问…

linux下统计文件的数目,Linux下如何统计文件数目

若只是查看当前目录下的文件数目(除开.和..文件),使用下面的命令&#xff1a;$ find ./ -type f | wc -l若查看当前目录下面的所有文件&#xff0c;含.和..使用如下命令即可&#xff1a;$wc -lps&#xff1a;find command and wc command1、FIND命令NAMEfind - search for file…

Delphi编程修改ProgressBar的颜色

delphi编程修改ProgressBar的颜色关键代码如下&#xff1a;uses CommCtrl; procedure TForm1.Button1Click(Sender: TObject); begin // Set the Background color to teal Progressbar1.Brush.Color : clTeal; // Set bar color to yellow SendMessage(ProgressBar1.Handle, P…

sql 中优化视图或sql语句的执行效率的方法

参见引用http://www.alixixi.com/program/a/2010062662233.shtml转载于:https://www.cnblogs.com/thornfield_he/archive/2010/09/28/1837811.html