Codeforces Round #142 (Div. 2)

工业组态软件Intouch(单机版)入门{第一篇} 通俗来讲Intouch就是一个能将PLC里的信号显示在画面上的软件。 阅读详情

话说国庆大假,11:30寝室终于有电了呀。

满心欢喜的做了一发cf,没想到system test挂得这么惨

A:签到题

B:打出素数表,将素数表的素数平方,然后读入询问的数二分就行了

C:先预处理。 预处理出将  i行j列   置为1需要的最小步数。

D:最短路,spfa,dijkstra神马的都可以搞,不过题目有个啃爹的限制,每个点有些时间点不能通过,其实只需要松弛操作的时候先算出distance[V],然后判断distan[V]是否可以通过,不能就把distance[V]加到可以通过为止。简单的枚举———将distance[V]每次加1会超时,所以每次在读入数据的时候需要先预处理一下,话说这道题我居然挂在了67组,一共才68组呀,因为distance初始化的时候将它赋值成了1000000000,答案其实会超过这么多的。简单的改成1010000000就A了。  还需要注意一点的就是起点也有时间点不能pass滴哟,到了终点就不用管终点不能pass的时间点了~~~

E:题目问你一个无向图和它的补图中一共有几个三元环。    首先如果是一个n个顶点的完全图  就应该有n*(n-1)*(n-2)/6个三元环吧。 所以只需要求出少去的环就可以了。  考虑任意一个点u, 假如在给的无向图中有x个点能到u,那么剩下的 (n-1-x)个点就不能到u了,那么以u为中间点的三元环就少点了 x*(n-1-x)个,按照这个思路想想就没什么了。最后代码不过20行。

A:

#include<stdio.h>   
#include<string.h>   
#include <cmath>
#include<algorithm>   
#define fr(i,s,n) for(int i=s;i<n;i++)
#define fi freopen("in.txt","r",stdin)
#define cl(a) memset(a,0,sizeof(a))
using namespace std;
typedef long long ll;
struct P{
	int x,y;
}p[1010];

int s,n;

bool cmp(P a,P b){
	if (a.x==b.x) return a.y>b.y;
	else return a.x<b.x;
}
int main(){
	
	scanf("%d%d",&s,&n);
	fr(i,0,n){
		scanf("%d%d",&p[i].x,&p[i].y);
	}
	sort(p,p+n,cmp);
	bool flag=1;
	fr(i,0,n){
		if (s>p[i].x) s+=p[i].y;
		else {
			flag=0;
			break;
		}
	}
	if (flag) printf("YES\n");
	else printf("NO\n");
	return 0;
}

B:

#include<stdio.h>   
#include<string.h>   
#include <cmath>
#include<algorithm>   
#define fr(i,s,n) for(int i=s;i<n;i++)
#define fi freopen("in.txt","r",stdin)
#define cl(a) memset(a,0,sizeof(a))
using namespace std;
typedef __int64 ll;
bool flag[1000010];
int prime[500000];
ll prime2[500000];
int t;
void init(){
	t=0;
	cl(flag);
	int i,j;
	int n=1000000;
	for(i=2;i<=n;++i) { /*筛选素数快速的方法*/
		if(!flag[i]) prime[t++]=i; 
		for(j=0;j<t&&i*prime[j]<=n;++j)
		{ 
			flag[i*prime[j]]=1; 
			if(i%prime[j]==0) break; 
		} 
	} 
	fr(i,0,t){
		prime2[i]=ll(prime[i])*ll(prime[i]);
	}
}
ll tmp;
bool solve(){
	int l=0,h=t-1,m;
	while(l<=h){
		m=(l+h)>>1;
		if (prime2[m]==tmp){
			return 1;
		}
		else if (prime2[m]>tmp) h=m-1;
		else l=m+1;
	}
	if (prime2[l]==tmp) return 1;
	return 0;
}

int main(){
	init();
	int T;
	
	scanf("%d",&T);
	
	fr(i,0,T){
		scanf("%I64d",&tmp);
		if (solve()) printf("YES\n");
		else printf("NO\n");
	}
	return 0;
}

C:

#include<stdio.h>   
#include<string.h>   
#include <cmath>
#include<algorithm>   
#define fr(i,s,n) for(int i=s;i<n;i++)
#define fi freopen("in.txt","r",stdin)
#define cl(a) memset(a,0,sizeof(a))
using namespace std;
typedef long long ll;
int n,m;
char  mp[20010];
int ans[110][20010];
int rans[110][20010];
int row;

int tmp;
int m2;
int dfs(int pos){
	if (pos==m2) return pos;
	if (mp[pos]=='1'){
		tmp=dfs(pos+1);
		ans[row][pos]=0;
		return pos;
	}
	else{
		tmp=dfs(pos+1);
		ans[row][pos]=tmp-pos;
		return tmp;
	}
}
int rdfs(int pos){
	if (pos==-1) return -1;
	if (mp[pos]=='1'){
		tmp=rdfs(pos-1);
		rans[row][pos]=0;
		return pos;
	}
	else{
		tmp=rdfs(pos-1);
		rans[row][pos]=pos-tmp;

		return tmp;
	}
}
void solve(){
	int best=1000000000;
	int tmp=1000000000;
	fr(i,0,m){
		tmp=0;
		fr(j,0,n) tmp+=min(ans[j][i],rans[j][i+m]);
		if (tmp<best) best=tmp;
	}
	if (best==1000000000) printf("-1\n");
	else printf("%d\n",best);	
}
int main(){
	scanf("%d%d",&n,&m);
	m2=2*m;
	getchar();
	bool havans=1;
	fr(i,0,n){
		gets(mp);
		bool flag=0;
		fr(k,0,m){
			mp[m+k]=mp[k];
			if (mp[k]=='1') flag=1;
		}
		if (!havans) continue;
		if (!flag){
			havans=0;
			continue;
		}
		row=i;
		dfs(0);
		rdfs(m2-1);
	}
	if (havans)solve();
	else printf("-1\n");
	
	return 0;
}


D:

#include<stdio.h>   
#include<string.h>   
#include <vector>
#include <cmath>
#include<algorithm>   
#include <queue>
#define fr(i,s,n) for(int i=s;i<n;i++)
#define fi freopen("in.txt","r",stdin)
#define cl(a) memset(a,0,sizeof(a))
using namespace std;
typedef long long ll;

const int N=100010;
struct E{
	int u,v,nxt,w;
}edge[210010];

int n,m;
int k[N];

int tote,head[N];
void init(){
	tote=0;
	memset(head,-1,sizeof(head));	
}

inline void addedge(int u,int v,int w){
	edge[tote].u=u;edge[tote].v=v;edge[tote].w=w;edge[tote].nxt=head[u];head[u]=tote++;
};


int dis[250020];  
int inq[250020]; 
queue<int> q;  

struct Ti{    //time can't pass
	int num;
	int cnt;
	Ti(){}
	Ti(int x,int y){
		num=x,cnt=y;
	}
};

vector<Ti> ve[N];

int cal_dis(int now,int tmp){
	int l=0,h=k[now]-1,m;
	while(l<=h){
		m=(l+h)>>1;
		if (tmp==ve[now][m].num) {
			return tmp+ve[now][m].cnt;
		}
		else if (tmp>ve[now][m].num) l=m+1;
		else h=m-1;
	}
	return tmp;
}
struct CMP{
	bool operator ()(const int a,const int b){
		return dis[a]>dis[b];
	}
};

priority_queue<int,vector<int>,CMP> pq;
bool done[N];
void dij(){                         //和spfa 任选一个就行了,因为spfa极限情况下复杂度很高,所以没有拍,后来测了一下速度几乎和dij差不多。
	int cur,v,tmp;
	fr(i,0,n+1) dis[i]=1010000000;
	dis[0]=0;
	pq.push(0);
	while(!pq.empty()){
		cur=pq.top();
		pq.pop();
		if (done[cur])	continue;
		done[cur]=1;
		for (int i = head[cur]; i != -1; i=edge[i].nxt){
			v=edge[i].v;  
			if (v==n){
				dis[v]=min(dis[v],dis[cur]+edge[i].w);
				continue;
			}
			tmp=cal_dis(v,dis[cur]+edge[i].w);
			if (dis[v]>tmp){
				dis[v]=tmp;
				pq.push(v);
			}
		}
	}
	
};
void spfa(){
	int cur,v,tmp;
	fr(i,0,n+1) dis[i]=1010000000;
	q.push(0);
	dis[0]=0;
	while(!q.empty()){  
		cur = q.front();  
		q.pop();  
		inq[cur]=0;  
		for (int i = head[cur]; i != -1; i=edge[i].nxt){
			v=edge[i].v;  
			if (v==n){
				dis[v]=min(dis[v],dis[cur]+edge[i].w);
				continue;
			}
			else tmp=cal_dis(v,dis[cur]+edge[i].w);
			if (tmp<dis[v]) {
				dis[v]=tmp;
				if (!inq[v]){
					q.push(v);
					inq[v]=1;
				}
			}
		}
	}
}
int knum[N];
Ti ti[N];
int main(){
	init();
	scanf("%d%d",&n,&m);
	int u,v,w;
	fr(i,0,m){
		scanf("%d%d%d",&u,&v,&w);
		addedge(u,v,w);
		addedge(v,u,w);
	}
	addedge(0,1,0);
	int tmp;
	
	int tot=0;
	fr(i,1,n+1){
		tot=0;
		scanf("%d",&k[i]);
		fr(j,0,k[i]){
			scanf("%d",&tmp);
			knum[tot++]=tmp;
		}
		int aft=0,aftcnt=0;
		for(int j=k[i]-1;j>=0;j--){
			if (knum[j]+1==aft) aftcnt++;			
			else aftcnt=1;
			aft=knum[j];
			ti[--tot]=Ti(aft,aftcnt);
		}
		fr(j,0,k[i]){
			ve[i].push_back(ti[j]);
		}
	}
	spfa();
	//dij();
	if (dis[n]!=1010000000){
		printf("%d\n",dis[n]);
	}
	else printf("-1\n");
	return 0;
}

E:

#include<stdio.h>   
#include<string.h>   
#include <cmath>
#include<algorithm>   
#define fr(i,s,n) for(int i=s;i<n;i++)
#define fi freopen("in.txt","r",stdin)
#define cl(a) memset(a,0,sizeof(a))
using namespace std;
typedef __int64 ll;
ll deg[1000010];
int main(){
	ll n;
	int m,u,v;
	scanf("%I64d%d",&n,&m);
	ll tot=n*(n-1)*(n-2)/6,dec=0;
	fr(i,0,m){
		scanf("%d%d",&u,&v);
		deg[u]++;deg[v]++;
	}
	fr(i,1,n+1) dec+=deg[i]*(n-1-deg[i]);
	printf("%I64d\n",tot-dec/2);
	return 0;
}



嘉立创EDA报错:元件引脚与焊盘未对应报错解决记录 原件引脚与焊盘未对应报错解决方法,一文总结! 阅读详情

相关推荐

带隙基准电路设计实战:从HSPICE仿真到Virtuoso版图全流程解析

在模拟集成电路设计中,基准电压源是确保系统精度与稳定性的核心模块。其基本原理在于巧妙结合具有正、负温度系数的电压,通过加权求和实现近似零温度系数的稳定输出,这一特性对于高精度数据转换器、电源管理芯片等至关重要。从工程实践角度,利用HSPICE进行深入的直流工作点、温度扫描和工艺角仿真,是验证电路性能、优化温度系数和电源抑制比的关键步骤。而借助Cadence Virtuoso进行版图实现时,必须重点关注电阻与BJT的匹配布局、敏感节点的保护以及电源完整性设计,以确保设计意图在硅片上得以准确呈现。通过完整的从前

weixin_29181861的博客 287

Codeforces Round #142 Div.2 题解

A B C D E A 打n条龙,龙的攻击力xi,打死每条龙攻击力加yi,你的初始攻击力是s. 如果你的攻击力小于或者等于某条龙的攻击力你就死了. 问你能不能活着回去. 每次贪心打攻击力最小的龙,将龙排序既可. #include&lt;bits/stdc++.h&gt; //Ithea Myse Valgulious using namespace std; co...

Fuko_Ibuki的博客 1万+

kubedns-coredns部署pod出现not ready问题

文章目录遇到的问题1、发现问题2、排查问题3、解决方法 coredns的实例health_check不通过的问题,排查和解决方法 遇到的问题 1、发现问题 pod启动但是未ready 查看是readiness失败 使用对应的URL进行curl,发现真的返回503 2、排查问题 查看错误日志,发现一堆这个错误"waiting on : kubernetes" 网上相关的问题解答 这个跟测试场景不一样,这个案例是开了防火墙,可以确认我这个案例的机器没有开防火墙,但它提醒了一点,coredns是需要访问ap

u012533481的博客 2844

Codeforces Round #142 (Div. 2) 解题报告

230A  A. Dragons 贪心水题 View Code #include #includestring.h> #include using namespace std; struct node { int x, y; }p[1003]; bool cmp(node a, node b) { return a.x b.y; } int m

Nicolas 1066

Simulink与CANape联动教程:模型调试阶段如何快速标定参数观测信号

本文详细介绍了如何通过Simulink与CANape联动,实现模型参数的实时标定与信号观测,从而避免反复编译,提升开发效率。核心在于正确配置Simulink中的标定量与观测量,生成A2L描述文件,并利用XCP协议建立通信,为新能源汽车与自动驾驶系统的快速原型开发提供高效解决方案。

weixin_29006187的博客 378

【scratch音乐课】天空之城:音符与节拍、消息与链表

scratch是一个非常小巧的青少年编程工具,自带程序编写语句,积木式语句非常直观、易用,可创作数学、科学、音乐、绘画等方面作品。本文用scratch“演奏”一首大家非常熟悉的《天空之城》,并向大家介绍一些基本乐理知识,以及scratch中消息、链表的使用。

★·°立芯;︶︵︶ 1万+

Codeforces Round #142 (Div. 2) C. Shifts

题意:给出一个N*M的矩阵,然后求移动每一行使一列全为1的最小步数。。。 思路:首先要穷举每一列J,然后对每一行进行处理,就是这一行的第J列有1的最小步数即可,然后累加所有行的最小步数。。。但是如果找每一行的策略不好,就会超时。。所以我讲一下找每一行的最小步数的二分策略。。 输入的时候就将每一行的1所在的列号存储起来。然后当枚举第J列的时候,找出第一个大于等于(lower_bound) 的位置

大洋深处 608

Mac电脑本地安装Stable Diffusion小白教程避开所有坑教程

如果出现黄字部分警告,如WARNING: The scripts pip, pip3 and pip3.9 are installed inz‘/usr/local/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/bin’ which is not on PATH)需要将其添加到path。下载pip,输入:curl https://bootstrap.pypa.io/pip/get-pip.py -o get-pip.py。

jackerjin123的博客 1799

Codeforces Round #142 (Div. 2)——B

B. T-primes time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output We know that prime numbers are positive integer

Learn as if you were to live forever 634

高通平台camera构架sensor驱动详解

优先阅读。

a5566255的专栏 3253

从数据校准到论文呈现:fsQCA与NCA方法融合的完整实证研究指南

本文详细介绍了fsQCA(模糊集定性比较分析)与NCA(必要条件分析)方法融合的完整实证研究流程,从数据校准到论文呈现。通过软件操作技巧、R语言NCA包高效使用及论文写作规范,帮助研究者避免常见误区,提升研究质量与可靠性。特别适合需要进行组态分析的研究生和学者参考。

weixin_29215391的博客 417

Codeforces Round #142 (Div. 2) C. Shifts

C. Shifts time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You are given a table consisting of n rows and m 

risker_2013的专栏 863

Winform从入门到精通(38)——StatusStrip(史上最全)

本文介绍StatusStrip控件的详细用法,包含所有属性和事件,绝对史上最全!

qq_34059233的博客 2759

【CodeForce】Codeforces Round #142 (Div. 2) A B C

A题贪心,按能力排序,从小的杀到大的,判断一下当前是否能杀死即可。 B题判断一个数是不是100w以内的素数平方数,打表即可。记得10^12 要 用long long。 C题是一个好题目,给一个0 1矩阵,要求左移或者右移任意一行使得有一列全部为1,输出最小移动次数。如果不能则输出-1。 矩阵可以转换为一个相对的位置矩阵如图: 转换后矩阵中的每一个元素表示:移动该行最小的次数 使得这一位置为

生命有一种绝对 1470

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Codeforces Round #142 (Div. 2) C

http://codeforces.com/problemset/problem/229/A 比完以后看了看其他人的代码,其实思路我是想到了,可是就是代码没实现,代码能力太弱了。。 思路就是先预处理一下。把每行的close[i][j]标记出来。close[i][j]表示在第i行的第j个数最少移动几次可以使得map[i][j]变为1。 在这里可以使用队列来得到close[i][j]的值,下面大...

weixin_30315905的博客 83

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【Codeforces Round】 #142 (Div. 2) C. Shifts(模拟)

You are given a table consisting of n rows and m columns. Each cell of the table contains a number, 0 or 1. In one move we can choose some row of the table and cyclically shift its values either one c...

红点雷龙XL 324

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Codeforces Round #142 (Div. 2) B - T-primes

B. T-primes time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output We know that prime numbers are positive integer

risker_2013的专栏 950

Shifts-Codeforces Round #142 (Div. 2) C (矩阵)

Description You are given a table consisting of n rows and m columns. Each cell of the table contains a number, 0 or 1. In one move we can choose some row of the table and cyclically shift its va

风的记忆 375

Codeforces Round #142 (Div. 2) D. Planets(spfa+思维)

题目链接 题意:又是一个阅读理解题。。。以下题意抄自大佬的。 n个点 m 条边 现在你找到从1到n的最短路,但是这里有一个限制就是如果你在时间t到达节点u 如果有其他人也在这个时间到节点u 那么你就要等这个人走了之后才能离开u。 思路:再每个出队节点的时候暴力枚举是否有人同时到达(出队节点的时候一定会有它d最短的时候),如果有则更新dis,再进行松弛操作,cf机子跑的是真快,直接枚举居然没超时...

qq_42479630的博客 183

Codeforces Round #142 (Div. 2)B. T-primes

B. T-primes time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output We know that prime numbers are positive integers that have ...

weixin_30667649的博客 139
上一篇: hdu 4405 Aeroplane chess
下一篇: Admission to Exam欧拉函数逆运算
work_freedom
博客等级 码龄14年 5粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值