考试的时候有思路了,但是没写完。这题起码要40min写,思路太诡异了。

刚刚写了一段,只过了一个case,得了18分,还行。明日再战。

#include <stdio.h>
#include <memory.h>
#include <math.h>
#include <string>
#include <vector>
#include <set>
#include <stack>
#include <queue>
#include <algorithm>
#include <map> #define I scanf
#define OL puts
#define O printf
#define F(a,b,c) for(a=b;a<c;a++)
#define FF(a,b) for(a=0;a<b;a++)
#define FG(a,b) for(a=b-1;a>=0;a--)
#define LEN 50000
#define MAX 0x06FFFFFF using namespace std; vector<int> v[];
int cnt=;
map<int,int> ID2index;
void buildConnect(int a,int b);
bool judge(int mul,int pos);
int mode=; typedef struct CP{
int a,b;
CP(int A,int B){a=A;b=B;}
}CP; bool cmp(CP a,CP b); int main() {
freopen("d:/input/A1139.txt","r",stdin);
int n,m,k;
scanf("%d%d",&n,&m);
while(m-->){
int a,b;
scanf("%d %d",&a,&b);
buildConnect(a,b);
buildConnect(b,a);
}
scanf("%d",&k);
while(k-->){
int a,b,i,j,k;
scanf("%d %d",&a,&b);
mode= a*b> ? : ;
vector<CP> ot;
int i1=ID2index[a],i2,i3;
int O1,O2;
FF(i,v[i1].size()) if(judge(v[i1][i]*a,)){//find tongXing
O1=v[i1][i];
i2=ID2index[O1];//is tongXing
FF(j,v[i2].size()) if(judge(v[i2][j]*a,)){//find yiXing
O2=v[i2][j];
i3=ID2index[O2];//is yiXing
FF(k,v[i3].size()) if(v[i3][k]==b){//find object
CP tmp(abs(O1),abs(O2));
ot.push_back(tmp);
break;
}
}
}
int s=ot.size();
sort(ot.begin(),ot.end(),cmp);
O("%d\n",s);
FF(i,s) O("%d %d\n",ot[i].a,ot[i].b);
}
return ;
} void buildConnect(int a,int b){
int index=ID2index[a];
if(index>){//find
v[index].push_back(b);
}else{
ID2index[a]=cnt;//cnt is a new index
v[cnt++].push_back(b);
}
} bool cmp(CP a,CP b){
if(a.a<b.a) return true;
else if(a.a==b.a && a.b<b.b) return true;
return false;
} bool judge(int mul,int pos){
if(mode==){
if(pos== && mul>)return true;
if(pos== && mul<)return true;
}
if(mode==){
if(pos== && mul>)return true;
if(pos== && mul>)return true;
}
return false;
}

2017年3月14日,24分:

#include <stdio.h>
#include <memory.h>
#include <math.h>
#include <string>
#include <vector>
#include <set>
#include <stack>
#include <queue>
#include <algorithm>
#include <map> #define I scanf
#define OL puts
#define O printf
#define F(a,b,c) for(a=b;a<c;a++)
#define FF(a,b) for(a=0;a<b;a++)
#define FG(a,b) for(a=b-1;a>=0;a--)
#define LEN 10000
#define MAX 0x06FFFFFF
#define V vector<int> using namespace std; typedef struct Node{
int a,b;
Node(int a=,int b=):a(a),b(b){
}
bool operator < (const Node& obj) const
{
if(a<obj.a || (a==obj.a && b<obj.b))
return ;
return ;
}
}; vector<int> adj[LEN];
int isg[LEN];
int vis[LEN];
vector<int> path;
set<Node> ans; int N,M,K; //dfs(s,e,0,mode);
void dfs(int s,int e,int cnt,int mode){
if(cnt>) return;
if(s==e && cnt==){
ans.insert(Node(path[],path[]));
return;
}
int i;
FF(i,adj[s].size()){
int o=adj[s][i];
if(vis[o]==){
bool isOK=;
if(mode<){
if(cnt%== && isg[s]*isg[o]>) isOK=;
if(cnt%== && isg[s]*isg[o]<) isOK=;
}else{
if(isg[s]*isg[o]>) isOK=;
}
if(isOK){
vis[o]=;
path.push_back(o);
dfs(o,e,cnt+,mode);
path.pop_back();
vis[o]=;
}
}
}
} int proc(int a){
if(a<){
a=-a;
isg[a]=-;
}else{
isg[a]=;
}
return a;
} int main(){
// freopen("1139.txt","r",stdin);
int s,e,i,j,a,b;
I("%d%d",&N,&M);
while(M--){
I("%d%d",&a,&b);
a=proc(a);
b=proc(b);
adj[a].push_back(b);
adj[b].push_back(a);
}
I("%d",&K);
while(K--){
I("%d%d",&s,&e);
int mode=s*e;
s=abs(s);
e=abs(e);
ans.clear();
path.clear();
vis[s]=;
dfs(s,e,,mode);
vis[s]=;
set<Node>::iterator it=ans.begin();
O("%d\n",ans.size());
while(it!=ans.end()){
O("%04d %04d\n",it->a,it->b);
it++;
}
}
return ;
}

A1139 | 玩成模拟题的DFS的更多相关文章

  1. 《ACM国际大学生程序设计竞赛题解Ⅰ》——模拟题

    这篇文章来介绍一些模拟题,即一类按照题目要求将现实的操作转换成程序语言. zoj1003: On every June 1st, the Children's Day, there will be a ...

  2. noip模拟题题解集

    最近做模拟题看到一些好的题及题解. 升格思想: 核电站问题 一个核电站有N个放核物质的坑,坑排列在一条直线上.如果连续M个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质. 任务:对于给定 ...

  3. 8.22 NOIP 模拟题

      8.22 NOIP 模拟题 编译命令 g++ -o * *.cpp gcc -o * *.c fpc *.pas 编译器版本 g++/gcc fpc 评测环境 位 Linux, .3GHZ CPU ...

  4. CSP复赛day2模拟题

    没错,我又爆零了.....先让我自闭一分钟.....so 当你忘记努力的时候,现实会用一记响亮的耳光告诉你东西南北在哪. 好了,现在重归正题: 全国信息学奥林匹克联赛(NOIP2014) 复赛模拟题 ...

  5. poj 1008:Maya Calendar(模拟题,玛雅日历转换)

    Maya Calendar Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 64795   Accepted: 19978 D ...

  6. poj1472[模拟题]

    Instant Complexity Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 2017   Accepted: 698 ...

  7. ZOJ1111:Poker Hands(模拟题)

    A poker deck contains 52 cards - each card has a suit which is one of clubs, diamonds, hearts, or sp ...

  8. HDU 4041 Eliminate Witches! (模拟题 ACM ICPC 2011亚洲北京赛区网络赛)

    HDU 4041 Eliminate Witches! (模拟题 ACM ICPC 2011 亚洲北京赛区网络赛题目) Eliminate Witches! Time Limit: 2000/1000 ...

  9. ACdreamoj(1105)模拟题

    题意:射一次激光最多能够攻击到几个敌人(因为激光非常强大,能够在击中敌人后穿过它,而瑶瑶自己的坦克因为有特殊装置,所以不会被激光击中.激光也会直接穿过它) . 表示此处为空地 * 表示此处为障碍(激光 ...

随机推荐

  1. 关于海大邮箱(ouc.edu)客户端配置及使用说明

    关于海大邮箱(ouc.edu)客户端配置及使用说明 邮箱说明 系统简介 海大邮箱使用的是论客(Coremail)提供的邮件系统:(很多大学都是) Coremail论客简介(摘自官网): Coremai ...

  2. WC2018 文艺汇演《退役的你》

    视频网址:https://www.bilibili.com/video/av19333297 谨以此歌献给那些曾与我们并肩前行的退役 OIer 填词 & 视频:Menci 演唱:wxh0109 ...

  3. Nginx中的$document_uri与$request_uri以及$http_referer

    Nginx基于$document_uri的访问控制,变量$document_uri该变量等价于$uri,其实也等价于location匹配. 示例1: 当用户请求的url中包含/admin/时,直接返回 ...

  4. VMware网络连接三种模式bridged、host-only、NAT

    1. bridged(桥接模式) 在桥接模式下,虚拟机和主机处于同一网段,这样虚拟机才能和主机进行通信 使用桥接模式,就像连接在同一个Hub上的两台电脑 //简单配置ip # ifconfig eth ...

  5. 虚拟机安装mysql踩坑记录

    本章节主要讲解的是在虚拟机centOs7版本以上安装mysql5.6版本,亲测可以直接使用,有需要帮助的小伙伴可以加本人QQ2246451792@qq.com!!!! 卸载centOs7自带的mari ...

  6. APP安全测试

    app 常见风险 一. clinet端 1.反编译 2.签名破解 3.调试 4.导出组件 5.拒绝服务 6.输入记录 二.传输 1.信息泄露,未使用加密服务(ssl) 2.篡改 三.服务端 1.SQL ...

  7. 浅谈Python设计模式 - 抽象工厂模式

    声明:本系列文章主要参考<精通Python设计模式>一书,并且参考一些资料,结合自己的一些看法来总结而来. 在上一篇我们对工厂模式中的普通工厂模式有了一定的了解,其实抽象工作就是 表示针对 ...

  8. 【异常】Caused by: java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 30005ms.

    一.异常出现的场景 一次线上订单历史数据字段刷新操作,3张表100多万数据.由于同步更新太慢大概20分钟以上,所以采用异不的方式.代码如下: private void batchUpdate(List ...

  9. mysql设计规范和原则

    DB设计流程: 1,需求分析 2,ER设计 3,物理设计 需求分析的最佳实践是头脑风暴,把需求理解透彻.根据公司的现况和未来的发展,与pm一起来讨论. ER(EntiyRelation)设计阶段要确定 ...

  10. 泛微e-cology OA系统某接口存在数据库配置信息泄露漏洞复现

    1.简介(开场废话) 攻击者可通过存在漏洞的页面直接获取到数据库配置信息.如果攻击者可直接访问数据库,则可直接获取用户数据,甚至可以直接控制数据库服务器. 2.影响范围 漏洞涉及范围包括不限于8.0. ...