首页 > 其他分享 >晚上切模拟122行祭

晚上切模拟122行祭

时间:2023-08-15 22:57:10浏览次数:44  
标签:node index int na 行祭 long 122 模拟 define

#include<bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define ld long double
#define gcd(a,b) __gcd(a,b)
using namespace std;
const int INF=INT_MAX;
int n,m,g;
map<int,int> region[1005];
struct Node{
	int r;
	int cnt;
	map<int,int> vis;
	int index;
}; 
Node node[1005];
int vis[1005]={0};
void insert1(int na){
	if(na==0){
		for(int i=1;i<=n;++i)
		  vis[i]++;
	}
	else{
		for(int i=1;i<=n;++i)
		  if(node[i].r==na)
		    vis[i]++;
	}
}
void insert2(int pa){
	if(pa==0){
		for(int i=1;i<=n;++i)
		  vis[i]++;
	}
	else{
		for(int i=1;i<=n;++i)
		  if(region[node[i].r][pa]==1)
		    vis[i]++;
	}
}
void insert3(int paa){
	if(paa==0){
		for(int i=1;i<=n;++i)
		  vis[i]++;
	}
	else{
		for(int i=1;i<=n;++i)
		  if(node[i].vis.find(paa)==node[i].vis.end())
		    vis[i]++;
	}
}
int maxNode(vector<Node> tnode){
	int ans=tnode[0].index;
	for(int i=1;i<tnode.size();++i){
		if(tnode[i].cnt<node[ans].cnt)
		  ans=tnode[i].index;
		else if(tnode[i].cnt==node[ans].cnt && tnode[i].index<node[ans].index)
		  ans=tnode[i].index;
	}
	return ans;
}
void insertNode(int a,int index){
	node[index].vis[a]=1;
	node[index].cnt++;
	region[node[index].r][a]=1;
	cout<<index<<' ';
}
void insert(int a,int na,int pa,int paa,int paar){
	memset(vis,0,sizeof(vis));
	insert1(na);
	insert2(pa);
	insert3(paa);
	vector<Node> tempans;
	for(int i=1;i<=n;++i){
		if(vis[i]==3)
		  tempans.push_back(node[i]);
	}
	if(tempans.size()!=0){
		int index=maxNode(tempans);
		insertNode(a,index);
		return ;
	}
	if(paa!=0 && paar==0){
		memset(vis,0,sizeof(vis));
		insert1(na);
		insert2(pa);
		for(int i=1;i<=n;++i){
			if(vis[i]==2)
			  tempans.push_back(node[i]);
		}
	}
	if(tempans.size()!=0){
		int index=maxNode(tempans);
		insertNode(a,index);
		return ;
	}
	cout<<0<<' ';
}
void solve(){
	cin>>n>>m;
	for(int i=1;i<=n;++i){
		int a;
		cin>>a;
		node[i].r=a;
		node[i].index=i;
	}
	cin>>g;
	for(int i=0;i<g;++i){
		int f,a,na,pa,paa,paar;
		cin>>f>>a>>na>>pa>>paa>>paar;
		while(f--){
			insert(a,na,pa,paa,paar);
		}
		cout<<endl;
	}
}
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	solve();
	return 0;
}

  

标签:node,index,int,na,行祭,long,122,模拟,define
From: https://www.cnblogs.com/Kudo-Shinich/p/17632658.html

相关文章

  • MAME模拟器设置连发
    下载一个中文版本的就好很多了。你下载了中文版本的后,吧原来的模拟器除了roms文件夹外,其他的文件都删掉,然后把这个文件夹覆盖新下载的模拟器的roms就行了在‘ok模拟网’有中文版本的模拟器下载进入游戏,按Tab张开设置菜单,在‘输入设置(这个游戏)’里设置好射击键(J),然后向下找到‘连发......
  • csp模拟<反思>3
    csp模拟21ARC141F首先上结论:如果一个串能用其他串消完那么这个串可以删去;剩下的串中有\(S_i\)是\(S_j\)的子串,那么答案是Yes;如果存在\(S_i=A+B\)和\(S_j=B+C\),且\(A\neqC\)则答案是Yes.第一部分:如何判断一个串\(S_i\)是否能被消完。建AC自动机,预处理\(ma......
  • 1003 Reasoning(大模拟)
    translation现有一个推理系统,有如下符号组成:圆括号:\((\)和\()\)逻辑连词:\(\lnot\)和\(\to\)全称量词:\(\forall\)变量:\(u-z\)常量:\(a-e\)函数:\(f-h\)谓词:\(P-T\)这个推理系统还包括项(term)、公式(formula)、自由出现(freeoccurrence)和替换(replacement)等概念。基于这些......
  • HDU 5499(模拟)
    SDOITimeLimit:2000/1000MS(Java/Others)    MemoryLimit:131072/131072K(Java/Others)TotalSubmission(s):500    AcceptedSubmission(s):210ProblemDescriptionn(n≤100) peoplecomestotheSelectandthereis m(m≤50) people......
  • cf 583 B. Robot's Task(模拟)
    链接:http://codeforces.com/problemset/problem/583/B//求改变的方向次数//直接模拟题目是从1开始所以从左到右从右到左#include<stdio.h>#include<algorithm>usingnamespacestd;inta[1000+10];intvis[1000+10];intmain(){intn,t=0;scanf("%d",&n);......
  • hihoCoder (1223 : 不等式)
    链接:http://hihocoder.com/problemset/problem/1223#include<iostream>#include<math.h>#include<stdio.h>#include<string.h>#include<algorithm>usingnamespacestd;chars[1010][100];inta[100];intmain(){intn;......
  • hihoCoder 1224 : 赛车
    链接:http://hihocoder.com/problemset/problem/1224//深搜一遍求最大深度,从最大深度的叶子回溯到根的所经过的每个顶点在深搜求最大深度#include<iostream>#include<math.h>#include<stdio.h>#include<queue>#include<string.h>#include<algorithm>usingnamespace......
  • Mysql中使用存储过程插入decimal和时间数据递增的模拟数据
    场景Mysql插入数据从指定选项中随机选择、插入时间从指定范围随机生成、Navicat使用存储过程模拟插入测试数据:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/129179745在上面的基础上,如何使用存储过程构造坐标数据规律递增以及时间递增的模拟数据。表结构如下......
  • 8.14 模拟赛小结
    前言最喜欢的一集T1儒略历题意化简:给你一个长度为\(n\)的序列需要挑选\(4\)个数下标为\(A,B,C,D\),满足\(A<B<C<D\)\(A\timesB\timesC=D\)\(n\leq10^4\)这个很简单枚举\(C\)预处理\(A*B\)再枚举\(D\)时间复杂度\(O(n^2)\)能过Code#include<bits/stdc......
  • 2023-08-14 CSP-J模拟联考 游记
    8:00 赶到 FZ,9:00正式开考。开考前先洗了一把脸。9:00~9:15开T1,原本没有思路,但后来想到可以贪心,每次找到<n 的最大的斐波那契数。于是打了个斐波那契的表,就过了。9:15~10:00T2写了45分钟我是什么东西。一开始想法是把每一个字符的数量统计起来,如果相差<1就满足要求,否......