首页 > 其他分享 >2024ICPC网络赛2

2024ICPC网络赛2

时间:2024-09-23 16:02:54浏览次数:1  
标签:p0 p1 return 2024ICPC int 网络 Read define

赛时5题,G题思路对的不知道为啥没过,对辗转相除法还有递推理解太低是这样的。

F,I

队友切的签到,I似乎是简单构造

A

模拟

这题离谱的一个地方就是我用unordered_map会报错所以改map了。

查了一下语法发现是因为没有自定义哈希函数,所以key值不是常规类型的时候必须自定义哈希函数。(当然也要记得重载运算符

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define endl '\n'
#define mkp make_pair
#define int long long
#define fir first
#define sec second
#define lowbit(x) (x&(-x))
#define pis pair<int,string>
const int maxn=2e5+10;

vector<pair<int,string> >st;
map<pis,int>id;
unordered_map<string,int>cnt;
unordered_map<string,int>pre;
int lst=0,k=0,f[maxn],t[maxn],a=0x3f3f3f3f3f;

bool cmp(pis x,pis y){
	return x.fir>y.fir;
}

void upd(int x,int k){
	while(x<maxn){
		t[x]+=k;
		x+=lowbit(x);
	}
	return;
}
int que(int x){
	int res=0;
	while(x>0){
		res+=t[x];
		x-=lowbit(x);
	}
	return res;
}

signed main(){
    int n,m;cin>>n>>m;
    for(int i=1;i<=m;i++){
    	int tmp;cin>>tmp;a=min(a,tmp);
	}
    for(int i=1;i<=n;i++){
    	string s;int x;
    	cin>>x>>s;
    	st.push_back(mkp(x,s));
    	id[mkp(x,s)]=i;
	}
	int k=0;
	sort(st.begin(),st.end(),cmp);
	for(auto i:st){
		if(lst!=i.fir)	k++,lst=i.fir;
		int cha=0;
		if(cnt[i.sec]==a)if(pre[i.sec]>i.fir)cha=1;
		
		f[id[i]]=que(k-1)+1-cha;
		//cout<<que(k-1)<<"mk"<<endl;
		if(cnt[i.sec]<a){
			cnt[i.sec]++,upd(k,1);
			if(cnt[i.sec]==a)pre[i.sec]=i.fir;	
		}
	}
	//cout<<k<<endl;
	for(int i=1;i<=n;i++)cout<<f[i]<<endl;
    return 0;
}

J

又是学到很多。排序问题的一种解法是观察能否解决比较两个相邻元素的子问题。杭电黑洞合并就是交换两个元素没有任何影响的例子,这个题想到这里列个式子就可以解出排序条件了。。(按c/w值排)
赛时因为太蠢所以是看样例猜的

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
#define inc(i,a,b) for(int i(a);i<=b;i++)
#define dec(i,a,b) for(int i(a);i>=b;i--)
const int maxn=1e5+10;

struct Node{
	int w,c;
}a[maxn];
int v[maxn];
bool cmp(const Node &x,const Node &y){
	double p=x.w*1.0/max(1.0*x.c,0.00001),q=y.w*1.0/(max(1.0*y.c,0.00001));
	return p>q;
}
signed main(){
    int n;cin>>n;
    for(int i=1;i<=n;i++){
    	cin>>a[i].w;
		cin>>v[i];
    	cin>>a[i].c;
	}
	int ans=0,pre=0;
	sort(a+1,a+n+1,cmp);
	for(int i=1;i<=n;i++){
		ans+=v[i];
		ans-=(pre*a[i].c);
		pre+=a[i].w;
	}
	cout<<ans<<endl;
    return 0;
}

G

唐氏辗转相除法。放江队写的代码,他这个是直接由前一种必败情况推必胜的。
我一开始想的是就是必胜的贡献给答案然后记录必败的往下推(因为我不会递归我写循环的),唉唉

#include<bits/stdc++.h>
const signed mod=998244353;
inline int Read(){
	int x=0,f=1;char ch=getchar();
	for(;!isdigit(ch);ch=getchar()) if(ch=='-') f=-1;
	for(;isdigit(ch);ch=getchar()) x=(x<<1)+(x<<3)+(ch^48);
	return x*f;
}
int add(int a,int b){
	return ((a+=b)>=mod)?a-mod:a;
}
int mul(int x,int y){
	return 1ll*x*y%mod;
}
int fpow(int a,int b){
	int ans=1;
	while(b){
		if(b&1) ans=mul(ans,a);
		a=mul(a,a);b>>=1;
	}
	return ans;
}
int f(int x,int y,int p0,int p1){
	if(x==0) return 0;
	return mul(fpow(p0,y/x),add(1,mod-f(y%x,x,p1,p0)));
}
signed main(){
	int T=Read();
	while(T--){
		int x=Read(),y=Read();
		int p0=Read(),p1=Read(),b=Read();
		int inv=fpow(p0+p1,mod-2);
		p0=mul(p0,inv);p1=mul(p1,inv);
		printf("%d\n",f(x,y,p0,p1));	
	}
	return 0;
}

L

概率题。
有一种可能就是这种无限套娃的,就只能自己套自己。可以写出一个左右两侧都含E的式子然后移项推式子就做完了。
这时候队友以为要三分了,但是没有人会三分(因为是一个反比例函数)。但是其实只要同时比较两个数不就知道斜率了,就可以二分
队友一开始以为是递推写了好久。谁记得有什么递推题能给我补一下。。。

标签:p0,p1,return,2024ICPC,int,网络,Read,define
From: https://www.cnblogs.com/lyrrr/p/18427188

相关文章

  • 网络流学习记录
    CCPC网络赛GProblemG.疯狂星期六Inputfile:standardinputOutputfile:standardoutputTimelimit:1secondMemorylimit:256megabytesyyq和他的朋友们一共n个人(编号为1到n,yyq编号为1)去某饭店吃疯狂星期六。第i个人初始手中有ai元的零......
  • 想要转行到互联网行业,是应该选择软件工程还是网络安全?_网络工程和网络空间安全谁更适
    学习路线:这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多以下是网络渗透需要学习的内容:网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄......
  • 学网络安全真的难吗?能找到工作吗?
    网络安全是当下非常热门的行业,更是一个新兴行业。相对于其他IT行业而言,网络安全拥有非常不错的就业前景,岗位也多样化,更重要的是它在企业当中拥有较高的地位,薪资待遇也普遍较高。那么学网络安全参加培训难吗?好找工作吗?我们一起来看看吧。学网络安全参加培训难吗?这个......
  • 开源网安网络安全培训视频入选工信部人才教育服务平台
    开源网安“数据安全”“防范恶意软件”“防范钓鱼邮件”“保护个人信息安全”4大网络安全培训视频通过层层筛选,成功入选工信部人才教育服务平台。开源网安网络安全培训视频的入选,推动工信部增强了网络安全专业知识普及和宣传力度,提升全民网络安全意识和技能,丰富了2024年国家网络安......
  • 小白学网络安全要求学历吗?
    众所周知,从事IT行业学历的作用是不可忽视的,它是一块敲门砖,更是我们进入职场的起点,起到了重要的作用。而网络安全作为当下热门的职业领域,它的火爆程度是有目共睹的,那么学网络安全有学历要求吗?这是很多人关心的问题,我们来看看吧。学习网络安全对学历没有固定的要求,任何学历......
  • Hyper-V (NAT) + DHCP server:实现灵活的虚拟机网络(虚拟交换机路由器):类似于vmware的
    vmwareworkstation(pro)有4种内置虚拟网络交换机1:桥接:虚拟机网络就是真正的物理机网络。虚拟机之间,虚拟机和宿主机,虚拟机和其他物理机之间,通过常规的网络方式访问。2:nat网络:虚拟机之间、虚拟机和宿主机可互访;虚拟机可访问其他物理机;其他物理机【不能】访问虚拟机3:仅主机网络:虚......
  • 2024ICPC网络赛第二场题解(部分)
    前言这场相对作用大一点,最后顶着队友的怀疑压力乱搞出了C,但是后面看题解发现似乎是数据弱了跑过去,其实复杂度是队友分析的那样,是不正确的,但是毕竟是打名额的比赛,过了就是过了,这里分享一下C题的乱搞做法,以及其他题的我们队赛时代码。下面的顺序按过题顺序(也差不多是难度递增顺序)......
  • 英特尔®以太网网络适配器E810-CQDA1 / E810-CQDA2 网卡 规格书 e810 网卡 规格书 Int
    英特尔®以太网800系列网络适配器英特尔®以太网网络适配器E810-CQDA1/CQDA2在10到100Gbps的以太网速度下实现高效的工作负载优化性能关键特性•单、双端口QSFP28•应用设备队列(ADQ)•PCIExpress(PCIe)4.0x16•动态设备个性化(DDP)•以太网端口配置工具(EPCT)......
  • 微星主板-Debian12系统-设置网络唤醒主机
    本文的方法实现了Debian12系统在用systemctlsuspend命令后进入待机状态后,能被唤起。用shutdown的完全关机状态的无法唤起,完全关机后网卡与路由器的连接断开无法唤起。后续如果有办法唤起完全关机状态的主机我会再写博客。首先设置微星主板,网上博客都是如下设置:进入高级–整......
  • Linux网络命令
    1.ping测试网络连通性-c指定ping次数      ping -c4   4次停-i   指定间隔时间-s   指定数据包的大小2.ifconfig查询本机网络信息  作用与  ipa|addr相同ifconfig命令使用方法命令:ifconfig              ......