Panasonic Programming Contest (AtCoder Beginner Contest 195) 题解

文章目录

  • A - Health M Death
  • B - Many Oranges
  • C - Comma
  • D - Shipping Center
  • E - Lucky 7 Battle
  • F - Coprime Present

Panasonic Programming Contest (AtCoder Beginner Contest 195)

A - Health M Death

判断倍数。

#include <cstdio>
int main() {int M, H;scanf( "%d %d", &M, &H );if( H % M == 0 ) printf( "Yes\n" );else printf( "No\n" );return 0;
}

B - Many Oranges

橘子重量可以不是整数

  • 最少个

    尽量每个橘子都是最大重量

    此外剩下一点重量,就再弄一个橘子,然后均分重量

  • 最多个

    尽量每个橘子都是最小重量

    此外剩下一点重量,直接均分到每个橘子上

#include <cstdio>
#include <cmath>
using namespace std;
int A, B, n;int main() {scanf( "%d %d %d", &A, &B, &n );n *= 1000;int min_tot = n / A, max_tot = n / B;int min_R = n - min_tot * A, max_R = n - max_tot * B;int t;t = int( ceil( ( A - min_R ) * 1.0 / min_tot ) );if( min_R && t + A > B ) return ! printf( "UNSATISFIABLE\n" );t = int( ceil( ( A - max_R ) * 1.0 / max_tot ) ) ;if( max_R && B - t < A ) return ! printf( "UNSATISFIABLE\n" );printf( "%d %d\n", max_tot + ( max_R ? 1 : 0 ), min_tot );return 0;
}

C - Comma

直接1e3,1e6,1e9,1e12,1e151e3,1e6,1e9,1e12,1e151e3,1e6,1e9,1e12,1e15做分界线求

#include <cstdio>
#define ll long longint main() {ll n;ll x1 = 1e3, x2 = 1e6, x3 = 1e9, x4 = 1e12, x5 = 1e15;scanf( "%lld", &n );if( n < x1 ) return ! printf( "0" );else if( n < x2) return ! printf( "%lld", n - x1 + 1 );else if( n < x3 ) return ! printf( "%lld", x2 - x1 + ( n - x2 + 1 ) * 2ll );else if( n < x4 ) return ! printf( "%lld", ( x3 - x2 ) * 2ll + x2 - x1 + ( n - x3 + 1 ) * 3ll );else if( n < x5 ) return ! printf( "%lld", ( x4 - x3 ) * 3ll + ( x3 - x2 ) * 2ll + x2 - x1 + ( n - x4 + 1 ) * 4ll );else return ! printf( "%lld", ( x5 - x4 ) * 4ll + ( x4 - x3 ) * 3ll + ( x3 - x2 ) * 2ll + x2 - x1 + ( n - x5 + 1 ) * 5ll );return 0;
}

D - Shipping Center

每个包只能装一袋垃圾

贪心,先装价值最大的垃圾,用最小的能用空间

#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
#define maxn 55
struct node {int w, v;
}bag[maxn], box[maxn];
int n, m, Q;
int x[maxn];
bool vis[maxn];bool cmp1( node x, node  y ) {return x.v > y.v;
}bool cmp2( node x, node y ) {return x.v < y.v;
}int main() {scanf( "%d %d %d", &n, &m, &Q );for( int i = 1;i <= n;i ++ )scanf( "%d %d", &bag[i].w, &bag[i].v );for( int i = 1;i <= m;i ++ )scanf( "%d", &box[i].v ), box[i].w = i;sort( bag + 1, bag + n + 1, cmp1 );sort( box + 1, box + m + 1, cmp2 );while( Q -- ) {int l, r;scanf( "%d %d", &l, &r );int ans = 0;for( int i = l;i <= r;i ++ ) vis[i] = 1;for( int i = 1;i <= n;i ++ )for( int j = 1;j <= m;j ++ )if( vis[box[j].w] || box[j].v < bag[i].w ) continue;else {vis[box[j].w] = 1;ans += bag[i].v;break;}for( int i = 1;i <= m;i ++ ) vis[i] = 0;printf( "%d\n", ans );}return 0;
}

E - Lucky 7 Battle

倒着推,dp[n]={0}dp[n]=\{0\}dp[n]={0},如果最终0∈dp00∈dp_00dp0就胜利

如果上一次操作是TTT,有一种情况可以达到,那么该余数就可以

dpi={r∣r∗10%7∈dpi+1⋃(r∗10+si+1)%7∈dpi+1}dp_i=\{r\ |\ r*10\%7∈dp_{i+1}\ \bigcup\ (r*10+s_{i+1})\%7∈dp_{i+1}\}dpi={r  r10%7dpi+1  (r10+si+1)%7dpi+1}

如果上一次操作是AAA,必须所有情况都达到,该余数才可以

dpi={r∣r∗10%7∈dpi+1⋂(r∗10+si+1)%7∈dpi+1}dp_i=\{r\ |\ r*10\%7∈dp_{i+1}\ \bigcap\ (r*10+s_{i+1})\%7∈dp_{i+1}\}dpi={r  r10%7dpi+1  (r10+si+1)%7dpi+1}

#include <cstdio>
#include <iostream>
using namespace std;
#define maxn 200005
int n;
char s[maxn], x[maxn];
int dp[maxn][7];int main() {scanf( "%d %s %s", &n, s + 1, x + 1 );dp[n][0] = 1;for( int i = n - 1;~ i;i -- )for( int r = 0;r < 7;r ++ )if( x[i + 1] == 'T' )dp[i][r] = dp[i + 1][r * 10 % 7] | dp[i + 1][( r * 10 + ( s[i + 1] ^ 48 ) ) % 7];elsedp[i][r] = dp[i + 1][r * 10 % 7] & dp[i + 1][( r * 10 + ( s[i + 1] ^ 48 ) ) % 7];if( dp[0][0] ) printf( "Takahashi\n" );else printf( "Aoki\n" );return 0;
}

F - Coprime Present

差值只有727272,所以∀x>72,x\forall_{x>72},xx>72,x的倍数最多只能出现一次,本质是构成其的质数最多只能出现一次

727272内的质数恰好202020个,两两互质,就相当于各个质数只出现一次

用状压DPDPDP完事

#include <cstdio>
#define int long long
#define maxn 1050000
int prime[20] = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71 };
int dp[maxn];
int A, B;signed main() {scanf( "%lld %lld", &A, &B );dp[0] = 1;for( int i = A;i <= B;i ++ ) {int t = 0;for( int j = 0;j < 20;j ++ )if( i % prime[j] == 0 )t |= ( 1 << j );for( int s = 0;s < ( 1 << 20 );s ++ )if( ! ( s & t ) ) dp[s | t] += dp[s];}int ans = 0;for( int i = 0;i < ( 1 << 20 );i ++ )ans += dp[i];printf( "%lld\n", ans );return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/316993.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

长沙.NET社区之光

奈何万事开头难迎着改革开放四十年带来的春风&#xff0c;长沙的互联网生态环境以唐胡子俱乐部为首的一众互联网社群将长沙互联网的环境推上了一个新的台阶。年底&#xff0c;我与有幸一起共事的溪源兄&#xff0c;下班后一起闲聊&#xff0c;觉着长沙的.NET的生态环境亟待改善…

P3205 [HNOI2010]合唱队

P3205 [HNOI2010]合唱队 题意&#xff1a; 有n个数&#xff0c;然后插入队伍中&#xff0c;如果队列当前为空&#xff0c;则直接插入&#xff0c;然后每次插入和上一次插入的比较&#xff0c;如果大于&#xff0c;插入当前队列的最右侧&#xff0c;如果小于&#xff0c;插入当…

2.14模拟总结

前言 节日快乐&#xff01; (逃) day10 50pts 期望&#xff1a;10302060 实际&#xff1a;0302050 rnk11 彻彻底底的摆烂局了。 但是rnk竟然没有太掉&#xff0c;所以我应该并不孤独… 和KH并排坐在机房里&#xff0c;各自看着电脑&#xff0c;痴痴想着各自的心事&#xff0c;…

KYOCERA Programming Contest 2021(AtCoder Beginner Contest 200)题解

文章目录A - CenturyB - 200th ABC-200C - Ringos Favorite Numbers 2D - Happy Birthday! 2E - Patisserie ABC 2F - Minflip SummationKYOCERA Programming Contest 2021&#xff08;AtCoder Beginner Contest 200&#xff09; A - Century 简单的除以200200200向上取整 B…

高级进阶:Azure DevOps搞定.NET Core编译版本号自增

点击上方蓝字关注“汪宇杰博客”熟悉.NET Framework的人知道&#xff0c;我们可以通过指定AssemblyVersion为10.0.*来让编译器自增版本号。但是.NET Core和.NET Standard不行。即使有MSBump这样的开源项目&#xff0c;也有一定的缺陷。一般这样的需求会出现在CI/CD服务器上。我…

Little Boxes UVALive - 8209

Little Boxes UVALive - 8209 题意&#xff1a; 给你四个数&#xff0c;输出四个数之和&#xff0c;四个数小于等于262之内 题解&#xff1a; 这。。。这。。水题 unsigned int 0&#xff5e;4294967295 (10位数&#xff0c;4e9) int -2147483648&#xff5e;2147483647 (…

2.15模拟总结

前言 day11 期望&#xff1a;406030130 实际&#xff1a;4003070 rnk16 挂大分了。。 T2树边不加双向&#xff1a;60->0。 这什么伞兵bug啊&#xff01; 整体状态也不太好&#xff0c;T2死磕无果。 T1看出正解结果写不出来拉插&#xff0c;乐。 题目解析 T1 网格序列&am…

Mynavi Programming Contest 2021(AtCoder Beginner Contest 201)题解

文章目录A - Tiny Arithmetic SequenceB - Do you know the second highest mountain?C - Secret NumberD - Game in Momotetsu WorldE - Xor DistancesF - Insertion SortMynavi Programming Contest 2021&#xff08;AtCoder Beginner Contest 201&#xff09;A - Tiny Arit…

Newbe.Claptrap - 一套以 “事件溯源” 和“Actor 模式”作为基本理论的服务端开发框架...

本文是关于 Newbe.Claptrap 项目主体内容的介绍&#xff0c;读者可以通过这篇文章&#xff0c;大体了解项目内容。轮子源于需求随着互联网应用的蓬勃发展&#xff0c;相关的技术理论和实现手段也在被不断创造出来。诸如 “云原生架构”、“微服务架构”、“DevOps” 等一系列关…

Rabbits UVALive - 8211

Rabbits UVALive - 8211 题意&#xff1a; n个兔子的位置&#xff0c;兔子每次可以跳到两个兔子之间&#xff0c;问最多可以跳多少下&#xff1f; 题解&#xff1a; 求出所有相邻两数的间隔&#xff0c;然后减去最小间隔就是答案 代码&#xff1a; #include <bits/std…

2.16模拟总结

前言 期望&#xff1a;100700170 实际&#xff1a;400040 rnk14 分全部挂没了&#xff0c;太行了。 T1不开longlong见祖宗&#xff0c;而且KH说的那个也有道理&#xff0c;带权之后树的重心可以不只有两个&#xff0c;所以最后还应该倍增的跳。&#xff08;然而这个地方题解似…

Caddi Programming Contest 2021(AtCoder Beginner Contest 193) 题解

Caddi Programming Contest 2021(AtCoder Beginner Contest 193) A - Discount 打折浮点数除即可 B - Play Snuke 枚举判断符合要求的求最小值即可 C - Unexpressed O(n)O(\sqrt{n})O(n​)枚举aaa&#xff0c;暴力翻倍&#xff08;最小的222最多乘323232次就会超过nnn的上…

NET Core微服务之路:SkyWalking+SkyApm-dotnet分布式链路追踪系统的分享

对于普通系统或者服务来说&#xff0c;一般通过打日志来进行埋点&#xff0c;然后再通过elk或splunk进行定位及分析问题&#xff0c;更有甚者直接远程服务器&#xff0c;直接操作查看日志&#xff0c;那么&#xff0c;随着业务越来越复杂&#xff0c;企业应用也进入了分布式服务…

YBTOJBZOJ:大根堆(启发式合并)

解析 如果到了链上&#xff0c;本题就是求LIS。 考虑LIS的常见队列做法&#xff0c;其本质就是维护长度为 xxx 的序列的结尾的最小值 qxq_xqx​。 那么在本题尝试如法炮制&#xff0c;对于每个节点&#xff0c;都开一个队列&#xff0c;qxq_xqx​ 表示子树内选了 xxx 个节点后…

Tree UVALive - 8212

Tree UVALive - 8212 题意&#xff1a; 有n个点&#xff0c;k个颜色&#xff0c;每个点都要被染色&#xff0c;相同颜色之间的边算是被该颜色覆盖&#xff0c;问有多少边被所有颜色覆盖 题解&#xff1a; 题目给的是无根树&#xff0c;我们可以将1默认为根然后求所有点的子…

dotnetcore-officeaddin-toolbox : Office 365 Add-in开发人员的工具箱

在上一篇文章&#xff08;.NET Core开源行动&#xff1a;一键创建Excel Add-in&#xff09; 中我给大家展示了一套为Office 365 Add-in开发人员准备的模板库&#xff0c;你可以通过 dotnet new excel & dotnet run 命令即可完成一个新的Add-in的创建和运行。关于如何加载这…

NOMURA Programming Contest 2021(AtCoder Regular Contest 121)

文章目录A - 2nd Greatest DistanceB - RGB MatchingC - Odd Even SortD - 1 or 2E - Directed TreeF - Logical Operations on TreeNOMURA Programming Contest 2021(AtCoder Regular Contest 121)A - 2nd Greatest Distance 大模拟讨论yyds 将点按x,yx,yx,y分别排序 xxx贡献…

F - Heron and His Triangle UVALive - 8206

F - Heron and His Triangle UVALive - 8206 题意&#xff1a; 给你应该n&#xff0c;然后求一个最小的t&#xff0c;问长度为t-1&#xff0c;t&#xff0c;t1所组成的三角形的面积为整数,t>n 题解&#xff1a; 这题我一开始被题目的-1给迷惑了&#xff0c;以为筛出所有…

YBTOJ:最短时间(长链剖分、线段树)

解析 不难得到最优策略&#xff1a;先尽可能的快的送死直到路径畅通无组&#xff0c;然后一口气冲到t点。 现在的难点就在于如何尽可能的快的送掉特定的次数。 不难发现&#xff0c;花费时间关于死亡次数的函数必然是一个下凸包。 设 fx,if_{x,i}fx,i​ 表示子树内距离 xxx 不…

Asp.Net Core对接钉钉群机器人

钉钉作为企业办公越来越常用的软件&#xff0c;对于企业内部自研系统提供接口支持&#xff0c;以此来打通多平台下的数据&#xff0c;本次先使用最简单的钉钉群机器人完成多种形式的消息推送&#xff0c;参考钉钉开发文档中自定义机器人环节&#xff0c;此次尝试所花的时间不多…