首页 > 其他分享 >2023.08.13百度之星(大失败)

2023.08.13百度之星(大失败)

时间:2023-08-18 19:24:56浏览次数:41  
标签:2023.08 13 ch int cnt while ans now 之星

大失败,哭;

放个链接,有空来补:码蹄集 (matiji.net)

前面两题写的还挺顺手,然后开始写4和6,然后寄了,两个题加起来大概交了十发吧,算法没什么大问题,但是写挂了,都只能过一半的样例,悲;

总结:沉淀,提升码力;

1记录把每个参数都调成同一个值的代价和把每个参数调成一段连续的数的代价,比较相加最小值即可;

调成同一个值的代价应该是其他点排序后到最中间的点的距离之和,因此大胆猜想调成一段连续的数是写成以中间的点为中心的一段数的距离和(不会证明);

 1 #include<bits/stdc++.h>
 2 #define ll long long
 3 using namespace std;
 4 int read(){
 5     char ch=getchar();int x=0,f=1;
 6     while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();}
 7     while(ch>='0'&&ch<='9'){x=x*10+ch-'0'; ch=getchar();}
 8     return x*f;
 9 }
10 const int maxn=1e5+5;
11 int N;
12 int x[maxn],y[maxn],z[maxn];
13 int main(){
14     N=read();
15     for(int i=1;i<=N;i++){
16         x[i]=read();y[i]=read();z[i]=read();
17     }
18     sort(x+1,x+N+1);
19     sort(y+1,y+N+1);
20     sort(z+1,z+N+1);
21     int t=(N+1)/2;
22     ll ans1=0,ans2=0,ans3=0;
23     for(int i=1;i<=N;i++){
24         ans1+=abs(x[i]-x[t]);
25         ans2+=abs(y[i]-y[t]);
26         ans3+=abs(z[i]-z[t]);
27     }
28     ll s1=0,s2=0,s3=0;
29     
30     if(N%2==1){
31         int a=x[t]-t;
32         int b=y[t]-t;
33         int c=z[t]-t;
34         for(int i=1;i<=N;i++){
35             a++;b++;c++;
36             s1+=abs(x[i]-a);
37             s2+=abs(y[i]-b);
38             s3+=abs(z[i]-c);
39         }
40         cout<<min(min(ans1+ans2+s3,ans1+s2+ans3),s1+ans2+ans3)<<endl;
41         return 0;
42     }
43     ll ans;
44     if(N%2==0){
45         int a=x[t]-t;
46         int b=y[t]-t;
47         int c=z[t]-t;
48         s1=0,s2=0,s3=0;
49         for(int i=1;i<=N;i++){
50             a++;b++;c++;
51             s1+=abs(x[i]-a);
52             s2+=abs(y[i]-b);
53             s3+=abs(z[i]-c);
54         }
55         ans=min(min(ans1+ans2+s3,ans1+s2+ans3),s1+ans2+ans3);
56         t++;s1=0;s2=0;s3=0;
57         a=x[t]-t;
58         b=y[t]-t;
59         c=z[t]-t;
60         for(int i=1;i<=N;i++){
61             a++;b++;c++;
62             s1+=abs(x[i]-a);
63             s2+=abs(y[i]-b);
64             s3+=abs(z[i]-c);
65         }
66         ans=min(min(min(ans1+ans2+s3,ans1+s2+ans3),s1+ans2+ans3),ans);
67     } 
68     cout<<ans<<endl;
69     return 0;
70 }

3建边跑最短路即可;

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int read(){
 4     char ch=getchar();int x=0,f=1;
 5     while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();}
 6     while(ch>='0'&&ch<='9'){x=x*10+ch-'0'; ch=getchar();}
 7     return x*f;
 8 }
 9 const int maxn=2e5+5;
10 const int maxm=1e6+5;
11 int N,tot;
12 int A[maxn],t[maxm],head[maxn],d[maxn],v[maxn];
13 struct node{
14     int u,v,next;
15 }e[maxm];
16 void add(int u,int v){
17     tot++;
18     e[tot].u=u;e[tot].v=v;
19     e[tot].next=head[u];head[u]=tot;
20 }
21 priority_queue<pair<int,int>>q;
22 void dij(){
23     memset(d,0x3f,sizeof(d));
24     memset(v,0,sizeof(v));
25     d[1]=0;
26     q.push(make_pair(0,1));
27     while(q.size()){
28         int x=q.top().second;q.pop();
29         if(v[x])continue;
30         v[x]=1;
31         for(int i=head[x];i;i=e[i].next){
32             int y=e[i].v;
33             if(d[y]>d[x]+1){
34                 d[y]=d[x]+1;
35                 q.push(make_pair(-d[y],y)); 
36             }
37         }
38     }
39 }
40 
41 int main(){
42     N=read();
43     for(int i=1;i<=N;i++){
44         A[i]=read();
45         if(t[A[i]]){
46             add(t[A[i]],i);
47         }
48         t[A[i]]=i;
49         if(i<N){
50             add(i,i+1);add(i+1,i);
51         }
52     }
53     dij();
54     cout<<d[N]<<endl;
55     return 0;
56 }

 

4看出来是exgcd,大概就是(n2-n1)*x + (n3-n1)*y = q - n1*p,且x+y<=p,0<=x<=p,0<=y<=p,要求y能取到的最小值与最大值;写了,挂了,回想了一下应该是判断最小值最大值无解那段写挂了;(有空补)

6一眼排序然后比较速度大小;

对于两只猫a,b:

1.a.p==b.p那么a.v=b.v=min(a.v,b.v);

2.a.p<b.p&&a.v<=b.v不可能追上;

3.a.p<b.p&&a.v>b.v可以追上;

统计有多少只猫一起即可,考场上一直没调出来,但是补题一发过了,真令人寒心;

 1 #include<bits/stdc++.h> 
 2 #define ll long long
 3 using namespace std;
 4 ll N,ans,cnt,now;
 5 struct node{
 6     ll p,v;
 7 }e[100005];
 8 int cmp(node a,node b){
 9     if(a.p==b.p)return a.v<b.v;
10     return a.p<b.p;
11 }
12 int main( ){
13     cin>>N;
14     for(int i=1;i<=N;i++){
15         cin>>e[i].p>>e[i].v;
16     }
17     sort(e+1,e+N+1,cmp);
18     for(int i=1;i<=N-1;i++){
19         if(e[i].p==e[i+1].p){
20             e[i].v=e[i+1].v=min(e[i].v,e[i+1].v);
21         }
22     }
23     ans=0;now=N;
24     for(int i=N;i>=1;i--){
25         if(e[i].v==e[now].v&&e[i].p==e[now].p){
26             cnt++;ans=max(ans,cnt);continue;
27         }
28         if(e[i].v>e[now].v){
29             cnt++;ans=max(ans,cnt);continue;
30         }
31         if(e[i].v<=e[now].v&&e[i].p<e[now].p){
32             cnt=1;ans=max(ans,cnt);now=i;continue;
33         }
34     }
35     cout<<ans<<endl;
36     return 0;
37 }

唉,要学习的还有很多,继续沉淀吧;

标签:2023.08,13,ch,int,cnt,while,ans,now,之星
From: https://www.cnblogs.com/burutaofan/p/17641413.html

相关文章

  • leetcode1372dp求交错路径长
    bfd+dpunordered_map<TreeNode*,int>d,p;queue<pair<TreeNode*,TreeNode*>>q;intdp(TreeNode*root){d[root]=p[root]=0;q.push({root,nullptr});while(!q.empty()){autox=q.front();q.pop();autoy=x.second();......
  • burpsuite靶场----SQL注入13----oracle的CAST报错注入
    burpsuite靶场----SQL注入13----oracle的CAST报错注入靶场地址https://portswigger.net/web-security/sql-injection/blind/lab-sql-injection-visible-error-based正式开始1.通过在TrackingId=JBhlRizkqfo87Hq8后面添加'和''(两个单引号)猜测是oracle数据库添加'报错,添加''......
  • [13章]Spring Boot打造企业级一体化SaaS系统
    SpringBoot打造企业级一体化SaaS系统 提取码:f7gh SAAS代表“软件即服务”(SoftwareasaService),它是一种软件交付模型,通过互联网提供软件应用程序给用户使用。在SAAS模型中,软件应用程序由供应商托管在云端的服务器上,并通过互联网进行访问和使用。SAAS系统的优点包括:低成本:用户无......
  • 花费400元,我DIY了一台全志A133平板电脑
    项目作者:flyn简介:DIY爱好者,在立创开源平台开源了个人的DIY项目4G手机MiniPhone以及焊接工具焊台、恒温加热台和多功能控制台。这是一款基于全志A133处理器DIY的平板电脑,可运行android和linux系统。平板搭载一块7寸1024X600分辨率的触摸液晶屏以及3000mAh的电池,且内置双频wifi6/B......
  • macOS Ventura 13.5.1 (22G90) Boot ISO 原版可引导镜像下载 (修复定位服务无法授权问
    macOSVentura13.5.1(22G90)BootISO原版可引导镜像下载(修复定位服务无法授权问题)2023年8月17日(北京时间18日凌晨)macOSVentura13.5.1发布,修复了“系统设置”-"隐私和安全性"中“定位服务”无法授权管理的问题。推荐所有用户更新。本站下载的macOS软件......
  • macOS Ventura 13.5.1 (22G90) 正式版发布,修复定位服务无法授权问题 (ISO、IPSW、PKG
    macOSVentura13.5.1(22G90)正式版发布,修复定位服务无法授权问题(ISO、IPSW、PKG下载)2023年8月17日(北京时间18日凌晨)macOSVentura13.5.1发布,修复了“系统设置”-"隐私和安全性"中“定位服务”无法授权管理的问题。推荐所有用户更新。请访问原文链接:https:......
  • GitHub: remote:Support for password authentication was removed on August 13,2021
    使用gitpushoriginmaster向远程仓库推送时被告知:remote:SupportforpasswordauthenticationwasremovedonAugust13,2021.Pleaseuseapersonalaccesstokeninstead.ush的时候需要输入github的账户名和密码,而这里的大概意思就是密码验证在2021年8月13号被移除了,需要......
  • t113-c-lvgl触摸接口接入
    整合一下最近搞的东西,顺便设计一下ui移植触摸复制port文件到src目录下同时改名字和删除掉不用的东西:/***@filelv_port_indev_templ.c**//*Copythisfileas"lv_port_indev.c"andsetthisvalueto"1"toenablecontent*/#if1/**********************......
  • 2013年12月 六级 作文翻译
    中秋节中秋节(来源:文都教育)【原文】中国人自古以来就在中秋时节庆祝丰收,这与北美地区庆祝感恩节的习俗十分相似,过中秋节的习俗与唐代早期在中国各地开始流行,中秋节在农历八月十五,是人们拜月的节日,这天夜晚皓月当空,人们合家团聚,共赏明月。2006年,中秋节被列为中国的文化遗产,200......
  • Spring源码学习笔记13——总结篇, 从IOC到AOP
    系列文章目录和关于我零丶序言在《Spring源码学习笔记12——总结篇,IOC,Bean的生命周期,三大扩展点》中,我们总结了SpringIOC部分的知识,为了更好的给群里的伙伴们分享SpringAOP的知识,遂有了这篇文章,这篇文章将从IOC聊到AOP,其中IOC不会那么细致,重点还是在AOP。一丶引入1.AOP概述......