源代码: https://gitee.com/shentuzhigang/mini-project/tree/master/exam-Alibaba/exam-Alibaba-2021 08 06
在第一个问题的主题说明中,定义为约1年mm个月、1个月d d d日、1周w w w日
m m m、d d d、w w w广为人知
第k k k年、第jj月、第i i i天是星期几
星期用小写表示
1=w=26
我忘了其他的数据范围,总之很普通。
解决方案JAVA版本
package io.shentuzhigang.exam.Alibaba; import java.util.Scanner;/* * @ authorshentuzhigang * @版本1.0.0 * @ email 1600337300 @ QQ.com * @ date 2021-08-0619 :16 * /公共群集while(scanner.hasnext () ) { long d=scanner.nextLong; long m=scanner.nextLong (; long w=scanner.nextLong (; long i=scanner.nextLong (; long j=scanner.nextLong (; long k=scanner.nextLong (; longresult=(k-1 ) m*d%w ) j-1 ) d%wI%w ) % w; system.out.println((char ) ) 96 ) result==0? w :结果); }}第二题的主题说明
有说明。 没有剪
样本输入7
2 3 4 2
1 3 4
2 3 4 2
2 3 4 5
1 3 1
2 6 4 5
2 6 12 6
样本输出NO
否
是
是
是
解决方案c的版本
合并核对集
# include stdio.h # includeiostreamusingnamespacestd; int t[20000]; intfind(intx ) if ) t[x]==0) { return x; }返回查找(t [ x ]; }voidmerge(inta,int b ) ) intq=find ) a; intp=find(b; if(q!=p () { t[q]=p; }}int main () { int n; scanf('%d ',n ); for(intI=0; i n; I ) { int op,a,b,c; 扫描(' % d ',op ); if(op==1) scanf ) ' %d%d ',a,b ); 合并(a,b ); }elseif(op==2) scanf ) (%d%d )、a、b、c ); int s=a % c; int t=b % c; printf(%s(n ),) find(s ) s==find(t )? '是' : '否' ); } }} TLE的JAVA版本
package io.shentuzhigang.exam.Alibaba; import java.util.Scanner;/* * @ authorshentuzhigang * @版本1.0.0 * @ email 1600337300 @ QQ.com * @ date 2021-008-0619 :46 */public claric while(Scanner.Hasnext () ) { int n=scanner.nextInt; bcj z=new bcj (; for(intI=0; i n; I ) { int op=scanner.nextInt (; if(op==1) { int a=scanner.nextInt; int b=scanner.nextInt (; z .合并(a,b ); }elseif(op==2) { int a=scanner.nextInt ); int b=scanner.nextInt (; int c=scanner.nextInt (; int s=a % c; int t=b % c; system.out.println(z.find(s )==z.find(t ) t? '是' : '否'; } } staticclassbcj { inthhdsgt=new int [ 20000 ]; 公共int find (intx ) if (t ) x )==0) { return x; }返回查找(t [ x ]; }公共语音消息(int b,int b ) intq=find ) a; intp=find(b; if(q!=p () { t[q]=p; } } }}