2022-2023 ICPC Brazil Subregional Programming Contest
admin
2024-03-31 13:03:00
0

文章目录

  • 前言
  • A. Finding Maximal Non-Trivial Monotones
  • D. Displacing Particles
  • E. Eliminating Ballons
  • F. Multidimensional Hangman
  • I. Intercepting Information
  • J. Playing 23
  • 总结


前言

vp补题

A. Finding Maximal Non-Trivial Monotones

题意:给定只含有a,b的字符串,找到连续的a的个数(只有一个a记为0)

coding

void solve()
{int n;cin>>n;string s;cin>>s;int ans=0;s+='b';int cnt=0;for(int i=0;i<=n;i++){if(s[i]=='b'){ans+=cnt;cnt=0;}else{if(cnt)cnt++;else if(i-1>=0&&s[i-1]=='a')cnt+=2;}}cout<

D. Displacing Particles

题意:给定n,x,y,矩形(0,0),(0,2N),(2N,2N),(2N,0),从(x,y)每次只能选择一个顶点与之相连并走到线段中点
问:需要走多少次能够走到矩形终点?
思路:直接dfs

coding

int a[N];
int l, r;
int n, x, y;void dfs(int k, int res)
{if(x == k){printf("%d", res);return;}if(k % 2 == 0) dfs(k / 2, res + 1);if((k + r) % 2 == 0) dfs((k + r) / 2, res + 1);
}void solve(){scanf("%d %d %d", &n, &x, &y);l = 0;r = 1;for(int i=1;i<=n;i++)r *= 2;int k = r / 2;dfs(k, 0);
}

E. Eliminating Ballons

题意:n个气球有一定的高度,每次射出的箭射到一个气球箭的高度就会–
问:射几支箭能够将所有的气球射完?
思路:气球高h被射中一定是因为h+1被射后才会被射中,那么直接记录前一个被射气球有没有,没有就将res++,否则目前高度气球–

void solve(){int n;scanf("%d", &n);map m;int res = 0;for(int i=1;i<=n;i++){int k;scanf("%d", &k);if(m[k] == 0) res++;else m[k]--;m[k - 1]++;}printf("%d", res);
}

F. Multidimensional Hangman

题意:给字符串星号处填上字母,使得某个单词尽可能的多,输出最多的单词和数量。

coding

void solve(){int n, c;scanf("%d %d", &n, &c);string s;map m;for(int i = 1; i <= n; i++){cin >> s;int p = 0;for(int j = 0; j < n; j++) if(s[j] == '*'){p = j;break;}for(int j = 0; j < 26; j++){char k = 'a' + j;string t = s;t[p] = k;m[t]++;}}int res = 0;string sr;for(auto [x, y] : m){if(y > res) sr = x, res = y;else if(y == res && sr > x){sr = x;}}cout << sr << " " << res;
}

I. Intercepting Information

题意:给定数字中出现9就输出F

void solve()
{int flag=1;for(int i=1;i<=8;i++){int x;cin>>x;if(x==9)flag=0;}if(flag)cout<<"S"<

J. Playing 23

题意:Jack和Marry玩23点的游戏,Jack和Marry开始都有两张手牌,后来两人也会的到n张相同的手牌
问:最后使得Marry能够赢下一张手牌拿到的数字最小是几?
注意事项:
1.每个数字的牌最多4张,拿完了就没有了
2.值为10的手牌不止4张(还有J、Q、K都代表10)
3.要尽可能的使需要的手牌值最小
4.两人手牌值一直相等是双赢的局面,也可认为Marry赢了
思路:能够让Marry赢有两种可能,Jack手牌值>23或者Marry手牌值=23


coding

mapmp;void solve(){int n;scanf("%d",&n);int Jack=0,Marry=0;int x,y;scanf("%d %d",&x,&y);mp[x]++,mp[y]++;if(x==11||x==12||x==13)x=10;if(y==11||y==12||y==13)y=10;Jack+=x+y;scanf("%d %d",&x,&y);mp[x]++,mp[y]++;if(x==11||x==12||x==13)x=10;if(y==11||y==12||y==13)y=10;Marry+=x+y;for(int i=1;i<=n;i++){scanf("%d",&x);mp[x]++;if(x==11||x==12||x==13)x=10;Jack+=x;Marry+=x;}int sum1=23-Jack+1;int sum2=23-Marry;if(sum1>10&&sum2>10){printf("-1\n");return;}else if(Jack==Marry){printf("%d\n",sum2);return;}else if(Jack>Marry){for(int i=sum1;i<=sum2;i++){if(mp[i]<4){printf("%d\n",i);return;}}printf("-1\n");return;}else if(Jackif(mp[sum2]==4)printf("-1\n");else printf("%d\n",sum2);}
}

总结

H:强连通分量待补
N:树状数组维护前K大前缀和待补

相关内容

热门资讯

各船舶注意!临时交通管制! 经核实并与气象部门会商研判,连云港沿海风力达到6级并持续增强,连云港海事局于 4月8日19时20分对...
伊朗暂时“不用回石器时代”了,... 北京时间4月8日上午,距离特朗普对伊朗设定的“最后期限”不到一个半小时,特朗普同意与伊朗暂时停火两周...
“欧洲、中东更坚信:特朗普失败... 【文/观察者网 阮佳琪】 峰回路转,“霍尔木兹大战”最后时刻哑火,严阵以待的全世界都松了口气,也彻...
原创 伊... 就在特朗普自信满满地宣称“取得胜利”的同时,伊朗最高国家安全委员会也毫不示弱,向国民宣布了一项“胜利...
贵州省长李炳军会见比亚迪执行副... 8月28日消息,贵州省委副书记、省长李炳军27日在贵阳会见来黔出席2025数博会的比亚迪执行副总裁、...
美国民众对伊朗战争净支持率为负... 中新网4月9日电(郑云天)当地时间7日傍晚,美国总统特朗普发帖宣称美国和伊朗同意停火两周,以推进谈判...
市场监管总局打造WTO技术性贸... 8月28日消息,全国市场监管系统技术性贸易措施工作座谈会27日召开。会上透露,为进一步落实中央扩大高...
蒙牛乳业上半年营收415.7亿... 8月27日消息,蒙牛乳业上半年营收415.7亿元,同比下降6.9%,预估428亿元;上半年净利润20...
上海新阳:上半年净利润1.33... 8月27日消息,上海新阳发布2025年半年度报告,公司实现营业收入8.97亿元,同比增长35.67%...
8月27日新闻联播速览24条 8月27日消息,今天《新闻联播》的主要内容有:1.【新思想引领新征程】天津以高水平开放促进高质量发展...