• Day3祭总结


    时间线:

    • 8:00~8:30 读完题面+T1 30pts
    • 8:30~9:30 T2暴力(人类智慧玄学?)
    • 9:30~10:00(划水???)+重新读T3、T4
    • 10:00整 伴随厕所装修的阴乐去实验楼并且在路上莫名想到T1正解
    • 10:10~10:40 疯狂搞T1
    • 10:40~11:00(摆大烂???)开始花时间轴,(认真)思考剩下1.5h干什么(想念贪吃蛇
    • 11:00~12:00 T4打表暴力
    • 12:00~12:30 T3水分
    • 1:00 老师调整测评姬\rightarrow文末换行不再卡分

    T1:P2312 [NOIP2014 提高组] 解方程 

    qwq 第一眼:不会是高精度吧!应该跟数论有关  算了算了,先拿30再说。打完T2的人类智慧后,开始反复摇摆:???先想T1还是先敲T3T4呢,然后去了趟实验楼,电梯里突然想到昨天讲的BSGS,又联想到Hash,随后反应锅来可以左右都对大质数取模  回来之后赶紧敲出来,发现是可以有的,怕遇上生日悖论,有搞了一组大质数

    刚交卷:好耶!蒟蒻居然想到了正解!!!跑完后:挂。。。具体原因在于负数取模的地方忘记处理了(以及快读因为平时不写而写得极其丑陋qwq)善良的lb老师改过之后——100pts(圣光普照)

    啊对了,习惯性写qp是不对的,平白多了一个log,其实一遍加一遍乘是完全可以的(3个T)

    1. #include
    2. using namespace std;
    3. #define int long long
    4. int n,m,ans[100010],cnt,f=1;
    5. const int p1=1e9+7,p2=998244353;
    6. pair<int,int> read()
    7. {
    8. pair<int,int>x;
    9. x.first=x.second=0;
    10. char ch=getchar();
    11. while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    12. while(ch>='0'&&ch<='9')
    13. {
    14. x.first=(x.first*10+ch-'0')%p1;
    15. x.second=(x.second*10+ch-'0')%p2;
    16. ch=getchar();
    17. }
    18. return x;
    19. }
    20. pair<int,int>aa[100010];
    21. int a1[100010],a2[100010];
    22. bool check(int x)
    23. {
    24. int res1=0,res2=0;
    25. for(int i=n;i>=1;i--)
    26. {
    27. res1=((res1+a1[i])*x)%p1;
    28. res2=((res2+a2[i])*x)%p2;
    29. }
    30. if((res1+a1[0])%p1==0&&(res2+a2[0])%p2==0) return 1;
    31. else return 0;
    32. }
    33. signed main()
    34. {
    35. //freopen("equation.in","r",stdin);
    36. //freopen("equation.out","w",stdout);
    37. scanf("%lld%lld\n",&n,&m);
    38. for(int i=0; i<=n; i++)
    39. {
    40. f=1;
    41. aa[i]=read();
    42. a1[i]=aa[i].first*f;
    43. a2[i]=aa[i].second*f;
    44. }
    45. for(int i=1;i<=m;i++)//枚举x
    46. {
    47. int res1=0,res2=0;
    48. if(check(i)) ans[++cnt]=i;
    49. }
    50. printf("%lld\n",cnt);
    51. for(int i=1;i<=cnt;i++) printf("%lld\n",ans[i]);
    52. return 0;
    53. }

    T2:P4423 [BJWC2011]最小三角形 

    P7883 平面最近点对(加强加强版) 差不多,但是由于那道题我是人类智慧过掉的,所以这里我也尝试了人类智慧,随机数据非常善良,乱搞60pts,本来很开心,但是当我得知:一次扫7个点即可AC时(我一次扫6个点),我裂开了qwq

     对此,lb老师的建议:其实你可以用时间随机一个5~10的数,然后考完试去找裁判重测~反正取最高分吗  随机数代码:

    srand(time(0)); int x=rand()%5+5; cout<

    旋转:

    1. #include
    2. using namespace std;
    3. #define int long long
    4. #define debug cout<<"!!!!!!!!!!";
    5. int n;
    6. double ans=1e9;
    7. struct node{double x,y;}a[100010];
    8. bool cmp(node aa,node bb)
    9. { return aa.x!=bb.x?(aa.x
    10. double dis(int i,int j)
    11. { return sqrt((a[i].x-a[j].x)*(a[i].x-a[j].x)+(a[i].y-a[j].y)*(a[i].y-a[j].y)); }
    12. double calc(int m)
    13. {
    14. for(int i=1;i<=n;i++)
    15. {
    16. double xx=a[i].x,yy=a[i].y;
    17. a[i].x=cos(m)*xx-sin(m)*yy;
    18. a[i].y=sin(m)*xx+cos(m)*yy;
    19. }
    20. sort(a+1,a+n+1,cmp);
    21. for(int i=1;i<=n;i++)
    22. for(int j=i+1;j<=n&&j<=i+7;j++)
    23. for(int k=j+1;k<=n&&k<=j+7;k++)
    24. {
    25. double temp;
    26. temp=dis(i,j)+dis(j,k)+dis(i,k);
    27. ans=min(ans,temp);
    28. }
    29. }
    30. signed main()
    31. {
    32. srand(time(0));
    33. scanf("%lld",&n);
    34. for(int i=1;i<=n;i++) scanf("%lf%lf",&a[i].x,&a[i].y);
    35. calc(rand()%360);
    36. calc(rand()%360);
    37. calc(rand()%360);
    38. printf("%.6lf",ans);
    39. return 0;
    40. }

    T3:P4774 屠龙勇士

    (之前见过也挂啊啊啊)不保证p是质数,大概可以看出就是exCRT的板子,但是由于预留时间太短了(之前划水太多了?)没有时间推式子,其次就算推出来式子也不一定写对,并且由于不会STL【multiest】找剑的时候复杂度也会炸。

    https://www.luogu.com.cn/problem/solution/P4774https://www.luogu.com.cn/problem/solution/P4774自动回血\rightarrow对p取模\rightarrow化为含n个同余方程的同余方程组,求最小正整数解x,就是最小的攻击次数

    atk[i]*x\equiv a[i](mod p) 推到这里我们发现有点恶心:就算是exCRT,也没有办法处理系数不为一的同余方程组,更emo的是,atk[i]在此时很可能压根没有逆元,系数化不掉,然后就开始惦记部分分。

    T4:P7738 [NOI2021] 量子通信 

    暴力花费时间过长,导致T3没有时间认真分析(还是位运算不熟练qwq)总怕自己对位运算记错或者理解偏差就反复检查。有两个bug花了很长时间:

    • 前面while(q--),作死就是不离线,后面for(i=1;i<=q;i++)
    • 打表数组下标出错【1、ss[j][i]=='0' 不写单引号】【2、下标把i+2,i+3写成i+3,i+4qwq】简单的暴力调了40多分钟qwq

    正解没有什么具体的算法,但是有好多神仙优化:

  • 相关阅读:
    4.4 switch语句
    DASCTF X GFCTF 2022十月挑战赛--Crypto
    使用ffmpeg和sdl播放视频实现时钟同步
    云原生相关概念
    二极管为何会单向导通
    鹰潭恒温恒湿实验室设计方案总结
    【图神经网络学习笔记系列】01-Graph Attention Networks 学习笔记
    国产CPU发展情况及信创服务器性能测试对比
    6-1 汉诺塔
    JVM之类加载子系统
  • 原文地址:https://blog.csdn.net/m0_60137414/article/details/126142452