大视野3562 [SHOI2014]神奇化合物
http://www.lydsy.com/JudgeOnline/problem.php?id=3562
//Accepted 6020 kb 1012 ms //由于题目的特殊要求:然而,令科学家们大为惊异的是,SHTSC 在变化过程中始终保持着一种特殊的性质: //即不存在这样的原子序列 a1,a2,...,an(n>3)满足 a1 与 a2、a2 与 //a3、......、an-1 与 an 以及 an 与 a1 都通过化学键相连,但它们之间却没有其他化学键相连的情况。 //所以有如下结论: //记所求答案为ans //对于A x y,判断是否存在另外的一个点z使x,z有边,y,z有边 //如果存在z,则操作以后ans不变,否则ans+=1; //对于D x y,判断是否存在另外的一个点z使x,z有边,y,z有边 //如果存在z,则操作以后ans不变,否则ans-=1; #include <cstdio> #include <cstring> #include <iostream> #include <queue> #include <cmath> #include <algorithm> using namespace std; #define ll long long ; ; struct node { int v,u; node() { } node(int u,int v):u(u),v(v) { } }p[imax_m]; int head[imax_n],next[imax_m]; int e; int vis[imax_n]; int ans; int Q; int n,m; void init() { memset(head,-,sizeof(head)); memset(next,-,sizeof(next)); e=; } void addEdge(int u,int v) { p[e]=node(u,v); next[e]=head[u]; head[u]=e++; } void deleteEdge(int u,int v) { ,i; ;i=next[i]) { if (p[i].v==v) break; pre=i; } ) { //head[u]=next[next[i]]; head[u]=next[i]; } else { //next[pre]=next[next[i]]; next[pre]=next[i]; } } void dfs(int u) { vis[u]=; ;i=next[i]) { int v=p[i].v; if (!vis[v]) dfs(v); } } int countTheNumberOfGraph() { memset(vis,,sizeof(vis)); ; ;i<=n;i++) { if (!vis[i]) { dfs(i); ans++; } } return ans; } /* bool find(int x,int y) { int flag=0; for (int i=1;i<=n;i++) { if (i==x) continue; if (i==y) continue; flag=0; for (int j=head[i];j+1;j=next[j]) { if (p[j].v==x) flag++; if (p[j].v==y) flag++; if (flag==2) return 1; } } return 0; } */ int mark[imax_n]; bool find(int x,int y) { memset(mark,,sizeof(mark)); ;i=next[i]) { if (p[i].v!=y) mark[p[i].v]++; } ;i=next[i]) { if (p[i].v!=x) mark[p[i].v]++; } ;i<=n;i++) { //printf("mark[%d]=%d\n",i,mark[i]); ) ; } ; } void operatorA(int x,int y) { ) { //printf("A %d %d ans--\n",x,y); ans--; } addEdge(x,y); addEdge(y,x); } void operatorD(int x,int y) { ) { //printf("D %d %d ans++\n",x,y); ans++; } deleteEdge(x,y); deleteEdge(y,x); } void operatorQ() { printf("%d\n",ans); } ]; int main() { //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); ) { int x,y; init(); ;i<m;i++) { scanf("%d%d",&x,&y); addEdge(x,y); addEdge(y,x); } ans=countTheNumberOfGraph(); scanf("%d",&Q); ;i<Q;i++) { scanf("%s",s); ]=='A') { scanf("%d%d",&x,&y); operatorA(x,y); } ]=='D') { scanf("%d%d",&x,&y); operatorD(x,y); } ]=='Q') { operatorQ(); } } } ; }
大视野3562 [SHOI2014]神奇化合物的更多相关文章
- BZOJ3562 : [SHOI2014]神奇化合物
可以发现,从头到尾有一堆点是始终连在一起的,所以把没被删掉的一开始就有的边都加上后求出每个联通块, 缩完点后我们发现,边数也减少得差不多了,剩下的就直接暴力. #include<cstdio&g ...
- python3爬取”理财大视野”中的股票,并分别写入txt、excel和mysql
需求:爬取“理财大视野”网站的排名.代码.名称.市净率.市盈率等信息,并分别写入txt.excel和mysql 环境:python3.6.5 网站:http://www.dashiyetouzi.co ...
- 【大视野入门OJ】1099:歌德巴赫猜想
Description 歌德巴赫猜想大家都很熟悉吧?给一个数,能够分解成两个素数的和.现在要给你一个n,6 <= n < 1000000,让你求他会分解成哪两个素数?如果存在多组解,则要求 ...
- VS大视野
vs的本质:他是微软公司的员工一起开发的一个项目: 既然是项目:那么就是用编程语言编出来的! 用的是C# C#有他的特点:继承,封装,多态!等 我们在使用vs的时候,为什么可以使用很多的里面已经存在的 ...
- [bzoj\lydsy\大视野在线测评]题解(持续更新)
目录: 一.DP 二.图论 1.最短路 2.强连通分量 三.利用单调性维护 四.贪心 五.数据结构 1.并查集 六.数学 1.计数问题 2.数学分析 七.博弈 八.搜索 /////////////// ...
- 【大视野入门OJ】1083:数组的二分查找
Description 在1500个整数中查整数x的位置,这些数已经从小到大排序了.若存在则输出其位置,若不存在则输出-1. Input 第一行,一个整数x 后面1500行,每行一个整数 Output ...
- 大视野 1012: [JSOI2008]最大数maxnumber(线段树/ 树状数组/ 单调队列/ 单调栈/ rmq)
1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec Memory Limit: 162 MBSubmit: 9851 Solved: 4318[Submi ...
- BZOJ4974 大视野1708月赛 字符串大师
传送门 题目大意 给定一个字符串的每一个前缀的最短循环节长度,求符合要求的字典序最小的字符串. 题解 给定循环节最短长度就是给定了这个字符串$kmp$的$next$数组,即$X_i=i-next_i$ ...
- 大视野 1016: [JSOI2008]最小生成树计数(最小生成树)
总结:此类题需要耐心观察规律,大胆猜想,然后证明猜想,得到有用的性质,然后解答. 简单的说:找隐含性质. 传送门:http://61.187.179.132/JudgeOnline/problem.p ...
随机推荐
- Centos6.5下的Hadoop安装
开始进行云计算部分的学习,为了存档,写下现在进行过的步骤 需要用到的主要版本: 虚拟机:Vmware Workstation pro 12.5 Linux系统:CentOS6.4 64bit jdk版 ...
- js触发按钮点击事件
js触发按钮点击事件 博客分类: javascript 模拟JS触发按钮点击功能 <html> <head> <title>usually function&l ...
- 不在折腾----hadoop-2.4.1完全分布式集群搭建
前言 * hadoop2.0已经发布了稳定版本了,增加了很多特性,比如HDFS HA.YARN等.最新的hadoop-2.4.1又增加了YARN HA * 注意:apache提供的hadoop-2.4 ...
- Java_ToolKit用法
转自:http://blog.sina.com.cn/s/blog_9e4556250100z5kv.html 此类是所有 Abstract Window Toolkit 实际实现的抽象超类.Tool ...
- linux进程通信之使用匿名管道进行父子进程通信
管道:是指用于连接一个读进程和一个写进程,以实现它们之间通信的共享文件,又称pipe文件. 管道是单向的.先进先出的.无结构的.固定大小的字节流,它把一个进程的标准输出和另一个进程的标准输入连接在一起 ...
- Android百度地图附加搜索和公交路线方案搜索
合肥程序员群:49313181. 合肥实名程序员群:128131462 (不愿透露姓名和信息者勿加入) Q Q:408365330 E-Mail:egojit@qq.com 综述: 今 ...
- win32 Dll 中添加afx.h 出现如下错误 error LNK2005: _DllMain@12 already defined
win32 Dll 中添加afx.h 出现如下错误 nafxcwd.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in ...
- C # 数据绑定(1)——将DataTabel的data添加ListView
文/嶽永鹏 目标界面: 功能:通过响应UI Textbox 的值向ListView 绑定新添加的纪录. UI XAML 代码 <Grid Margin="5"> < ...
- java 平面上最近两个点之间的距离
public class ClosestPair{ public static void main(String[] args) { float[][] a = new float[][]{{3, 3 ...
- Javascript学习笔记2.1 Javascript与DOM简介
DOM(文档对象模型)简介 DOM(文档对象模型)针对HTML和XML文档的一个API. DOM可以将任何HTML或XML文档描绘成由多层节点构成的树形结构,它是中立于平台和语言的接口,允许程序和脚本 ...