题意:有编号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 质数的更多相关文章

  1. Codeforces Round #589 (Div. 2) C - Primes and Multiplication(数学, 质数)

    链接: https://codeforces.com/contest/1228/problem/C 题意: Let's introduce some definitions that will be ...

  2. 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 ...

  3. Codeforces 922 思维贪心 变种背包DP 质因数质数结论

    A #include <bits/stdc++.h> #define PI acos(-1.0) #define mem(a,b) memset((a),b,sizeof(a)) #def ...

  4. 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 ...

  5. Codeforces Round #382 Div. 2【数论】

    C. Tennis Championship(递推,斐波那契) 题意:n个人比赛,淘汰制,要求进行比赛双方的胜场数之差小于等于1.问冠军最多能打多少场比赛.题解:因为n太大,感觉是个构造.写写小数据, ...

  6. CodeForces比赛总结表

    Codeforces A                     B                        C                             D            ...

  7. Codeforces Beta Round #17 A - Noldbach problem 暴力

    A - Noldbach problem 题面链接 http://codeforces.com/contest/17/problem/A 题面 Nick is interested in prime ...

  8. CodeForces 300C --数论

    A - A Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit Statu ...

  9. codeforces magic five --快速幂模

    题目链接:http://codeforces.com/contest/327/problem/C 首先先算出一个周期里面的值,保存在ans里面,就是平常的快速幂模m做法. 然后要计算一个公式,比如有k ...

随机推荐

  1. 红外图像盲元补偿matlab实现源码与效果验证

    在国内红外公司绝大多数一直以来国外进口的成像芯片,能够进行红外芯片自助开发的电学应该只有大立光电和广微积电光学方法只有上海巨哥和一直未能产 品化的昆山光微电子.由于政治和历史原因,欧美对中国大陆还是实 ...

  2. ThinkPHP部分内置函数

    D.F.S.C.L.A.I 他们都在functions.php这个文件家下面我分别说明一下他们的功能 D() 加载Model类M() 加载Model类 A() 加载Action类L() 获取语言定义C ...

  3. js原型对象中属性被覆盖(1)

    /**   *@author 程无衣   *@description 关于在原型对象中属性被覆盖   */       function Person(){}       Person.prototy ...

  4. 1280 前缀后缀集合(map)

    1280 前缀后缀集合 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 一个数组包含N个正整数,其中有些是重复的.一个前缀后缀集是满足 ...

  5. set集合可以添加重复元素

    set集合判断元素的唯一性要重写hashcode和equals方法,这样就能保证不会加入重复的元素, 但是在以下这种情况下任然可以加入重复元素,即使他们的hashcode和equals方法结果相同 p ...

  6. 巨蟒django之CRM2 展示客户列表&&分页

    1.展示客户列表 点击画红线中的views,进入下列界面 路径的查找顺序:应该是先查找外层的templates里边的html,然后查找app里边的templates 另一个会按照app的顺序进行寻找, ...

  7. react-native 中使用redux 优化 Connect 使用装饰器简化代码报错

    报错信息 error: bundling failed: Error: The 'decorators' plugin requires a 'decoratorsBeforeExport' opti ...

  8. MySQL权限系统(一).The MySQL Access Privilege System 概述

    纯属个人阅读,如有翻译错误,请指出 The primary function of the MySQL privilege system is to authenticate a user who c ...

  9. MySQL中行锁的算法

    行锁的3中算法 Record Lock:单个行记录上的锁 Gap Lock:间隙锁,锁定一个范围,但不包含记录本身 Next-key Lock:Gap Lock+Record Lock锁定一个范围,并 ...

  10. MySQL 第三天

    回顾     字段类型(列类型): 数值型, 时间日期型和字符串类型     数值型: 整型和小数型(浮点型和定点型) 时间日期型: datetime, date,time,timestamp, ye ...