codeforces 155D 质数
题意:有编号1到n的n台机器,有m次操作,操作为开启或关闭机器,成功开启机器k的条件为k和所有已经开启的机器编号互质。
思路:vis[i]数组存放占领i这个位置的机器编号,因为所有开启的机器的编号互质,所以每个i至多只被1台机器占领。open数组保存机器的开启状态。
开启编号为k的机器操作:枚举k的所有因子,若vis[k的任意因子]=0,则成功开启,vis[k的任意因子]=k,open[k]=1。
关闭编号为k的机器操作:枚举k的所有因子,vis[k的任意因子]=0。
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int vis[];
int open[]; //0为关闭 1为开启
int main() {
int n,m,x;
char c;
memset(vis,,sizeof vis);
memset(open,,sizeof open);
scanf("%d%d",&n,&m);
while(m--) {
getchar();
scanf("%c %d",&c,&x);
if(c=='+') {
if(open[x]==) puts("Already on");
else {
int flag=;
for(int i=;i*i<=x;i++) {
if(x%i==) {
if(vis[i]!=) {
flag=vis[i];break;
}
if(vis[x/i]!=) {
flag=vis[x/i];break;
}
}
}
if(vis[x]!=) flag=vis[x];
if(flag==) {
puts("Success");
open[x]=;
for(int i=;i*i<=x;i++) {
if(x%i==) vis[i]=vis[x/i]=x;
}
vis[x]=x;
}
else printf("Conflict with %d\n",flag);
}
}
else if(c=='-') {
if(open[x]==) puts("Already off");
else {
puts("Success");
open[x]=;
for(int i=;i*i<=x;i++) {
if(x%i==) vis[i]=vis[x/i]=;
}
vis[x]=;
}
}
}
return ;
}
codeforces 155D 质数的更多相关文章
- Codeforces Round #589 (Div. 2) C - Primes and Multiplication(数学, 质数)
链接: https://codeforces.com/contest/1228/problem/C 题意: Let's introduce some definitions that will be ...
- Codeforces 916 二进制1数目构造(阅读理解) 最小生成树1-N路径质数构造
A #include <bits/stdc++.h> #define PI acos(-1.0) #define mem(a,b) memset((a),b,sizeof(a)) #def ...
- Codeforces 922 思维贪心 变种背包DP 质因数质数结论
A #include <bits/stdc++.h> #define PI acos(-1.0) #define mem(a,b) memset((a),b,sizeof(a)) #def ...
- Codeforces 548E Mike ans Foam (与质数相关的容斥多半会用到莫比乌斯函数)
题面 链接:CF548E Description Mike is a bartender at Rico's bar. At Rico's, they put beer glasses in a sp ...
- Codeforces Round #382 Div. 2【数论】
C. Tennis Championship(递推,斐波那契) 题意:n个人比赛,淘汰制,要求进行比赛双方的胜场数之差小于等于1.问冠军最多能打多少场比赛.题解:因为n太大,感觉是个构造.写写小数据, ...
- CodeForces比赛总结表
Codeforces A B C D ...
- Codeforces Beta Round #17 A - Noldbach problem 暴力
A - Noldbach problem 题面链接 http://codeforces.com/contest/17/problem/A 题面 Nick is interested in prime ...
- CodeForces 300C --数论
A - A Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Submit Statu ...
- codeforces magic five --快速幂模
题目链接:http://codeforces.com/contest/327/problem/C 首先先算出一个周期里面的值,保存在ans里面,就是平常的快速幂模m做法. 然后要计算一个公式,比如有k ...
随机推荐
- 对asp.net缓存 的深入了解
一.缓存概念,缓存的好处.类型.-------------------------------------------------------------------------------- ...
- [Oracle] - Create DB on Oracle 12c for an Application
Let's say we are going to develop a application for a bank, or any other enterprise, this applicatio ...
- iOS学习笔记(十)——iOS真机调试
前面一直使用模拟器运行,今天使用了真机调试,这一篇介绍一下真机调试.真机调试需要99$注册,如果有注册过的账号,也可以使用注册账号邀请你加入一个账号下,注册账号可以给你分配权限,我也是使用的邀请成为开 ...
- [Spring MVC]学习笔记--form表单标签的使用
github例子地址: https://github.com/lemonbar/spring-mvc-jsp 效果图 关于spring mvc的标签的讲解, 有一篇blog已经讲的很细了. http: ...
- isnull在order by中的使用——让我长见识了
select * from VisitLogorder by ISNULL(NextVisitDate,'2299-01-01') 此sql的作用是查找表中的数据,并按照NextVisitDate字段 ...
- 巨蟒python全栈开发linux之centos4
1.linux虚拟环境1-4 2.linux运行crm代码
- IOS 代码块
1.关系式表示 <returnType>(^BlockName)(list of arguments)=^(arguments){body;};
- python的文件处理学习笔记
python的文件处理函数是open() 以下主要是关于这个函数的一些学习笔记 1.文件处理离不开编码 要注意的是文件打开时的编码和文件保存时的编码的统一,这样才能保证你打开的文件不会存在乱码 总结: ...
- 基于TCP_socket套接字实现远程执行命令
基于tcp的套接字实现远程执行命令的操作 ——客户端敲命令,服务端执行 #服务端 import socket import subprocess phone=socket.socket(socket. ...
- hdu 2112 HDU Today(map与dijkstra的结合使用)
HDU Today Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...