Warning: session_start(): open(/tmp/sess_3f6b90a3be0f6518892ed37a267459cb, O_RDWR) failed: No space left on device (28) in /data/wiki/inc/init.php on line 239

Warning: session_start(): Failed to read session data: files (path: ) in /data/wiki/inc/init.php on line 239

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/auth.php on line 430

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/actions.php on line 38

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/lib/tpl/dokuwiki/main.php on line 12
2020-2021:teams:die_java:front_page_summertrain5 [CVBB ACM Team]

用户工具

站点工具


2020-2021:teams:die_java:front_page_summertrain5

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
2020-2021:teams:die_java:front_page_summertrain5 [2020/07/24 23:45]
wxg [F.Empty Vessels]
2020-2021:teams:die_java:front_page_summertrain5 [2020/07/24 23:50] (当前版本)
wxg [训练总结]
行 89: 行 89:
  
 === 题意 === === 题意 ===
- +求区间里一个数,使数的每一位的乘积最大。
  
 === 题解 === === 题解 ===
 +答案一定为最高几位和右区间的相同,后面就是某一位减一之后全是九,枚举这一位出现的位置求出最大乘积的值。
  
 <hidden 代码> <hidden 代码>
 <code cpp> <code cpp>
 +#​include<​iostream>​ 
 +#​include<​cstdio>​ 
 +#​include<​algorithm>​ 
 +#​include<​cstring>​ 
 +#​include<​cmath>​ 
 +#define ll long long 
 +using namespace std; 
 +int read() 
 +
 + int k=0,​f=1;​char c=getchar();​ 
 + for(;​!isdigit(c);​c=getchar()) if(c=='​-'​) f=-1; 
 + for(;​isdigit(c);​c=getchar()) k=k*10+c-'​0';​return k*f; 
 +
 +ll n,​m,​sum=1,​a[20],​b[20],​ans[105][105],​vis[20];​ 
 +int main() 
 +
 + scanf("​%lld%lld",&​n,&​m);​ 
 + while(n) a[++a[0]]=n%10,​n/​=10;​ 
 + while(m) b[++b[0]]=m%10,​m/​=10;​ 
 + int fl=0,​fl2=0;​ 
 + for(int i=b[0];​i;​i--) 
 +
 + if(!fl) 
 +
 + if(a[i]==b[i]) ans[1][i]=a[i];​ 
 + else  
 +
 + fl=1; 
 + ans[1][i]=b[i],​vis[i]=1;​ 
 +
 +
 + else ans[1][i]=b[i],​vis[i]=1;​ 
 +
 + for(int i=b[0];​i;​i--) 
 + {  
 + if(vis[i]) 
 +
 + if(b[i]=0) break; 
 + sum++; 
 + for(int j=b[0];​j>​i;​j--)  
 + ans[sum][j]=b[j];​ 
 + ans[sum][i]=b[i]-1;​ 
 + for(int j=i-1;​j;​j--) 
 + ans[sum][j]=9;​ 
 +
 +
 +//​ cout<<​sum<<​endl;​ 
 + ll res=-1,​pos;​ 
 + for(int i=1;​i<​=sum;​i++) 
 +
 + int st=b[0];ll as=1; 
 + while(ans[i][st]==0) st--; 
 + for(;​st;​st--) 
 + as*=ans[i][st];​ 
 + if(as>​res) res=as,​pos=i;​ 
 +
 + int st=b[0]; 
 + while(ans[pos][st]==0) st--; 
 + for(;​st;​st--) 
 + printf("​%d",​ans[pos][st]);​ 
 + return 0; 
 +}
 </​code>​ </​code>​
 </​hidden>​ </​hidden>​
行 387: 行 447:
 fyh:​本次比赛我们队的罚时得到了很大的进步,大部分题都能1A,​我在推H的时候不等号忘记变号,导致输不对答案,肉眼调了一小会,耽误了一点点时间,算是一个易错点。 fyh:​本次比赛我们队的罚时得到了很大的进步,大部分题都能1A,​我在推H的时候不等号忘记变号,导致输不对答案,肉眼调了一小会,耽误了一点点时间,算是一个易错点。
 \\ hxm: \\ hxm:
-\\ wxg:+\\ wxg:G题写的有点慢,A的乱搞没有搞过去。
2020-2021/teams/die_java/front_page_summertrain5.1595605554.txt.gz · 最后更改: 2020/07/24 23:45 由 wxg