17.10.05

  • 上午
    • 模拟考试
      • Prob.1(AC)一道简单的博弈题,找到必胜态,反推普遍情况是否可以达到必胜态即可。
      • Prob.2(AC)做到原题了呢。入门OJ 2092: [Noip模拟题]舞会
      • Prob.3(WA了3个点)一道高精度的dp题,为减少状态,我把数据按某一权值分为了两类,对于一类反着dp,状态很少,只用到高精度加法。对于另一类(30分),要用到高精度乘法,然后进位时少打了一个+号,然后就没有然后了……
    • 然后整理了三个模板,贴上!
      //maybe have no mistakes,^_^//1.Big_Int
      //only support + , * , = , < , <= , > , >= between Big_Int and Big_Int as well as Big_Int and int 
      #define MAXN 1000
      struct Big_Int{int len,a[30];Big_Int(){len=1; memset(a,0,sizeof(a));}void operator =(int val){len=0;do{a[++len]=val%MAXN;val/=MAXN;}while(val);}Big_Int operator +(const Big_Int &rtm) const{Big_Int now; int l=max(len,rtm.len);for(int i=1;i<=l;i++){now.a[i]+=a[i]+rtm.a[i];now.a[i+1]=now.a[i]/MAXN;now.a[i]%=MAXN;}if(now.a[l+1]) l++; now.len=l;return now;}Big_Int operator +(const int &val) const{Big_Int now,rtm;rtm=val; now=(*this)+rtm;return now;}Big_Int operator *(const Big_Int &rtm) const{Big_Int now; int l=len+rtm.len;for(int i=1;i<=len;i++)for(int j=1;j<=rtm.len;j++){now.a[i+j-1]+=a[i]*rtm.a[j];now.a[i+j]+=now.a[i+j-1]/MAXN;now.a[i+j-1]%=MAXN;}while(!now.a[l]) l--; now.len=l;return now;}Big_Int operator *(const int &val) const {Big_Int now,rtm;rtm=val; now=(*this)*rtm;return now;}bool operator ==(const Big_Int & rtm) const{if(len!=rtm.len) return 0;for(int i=len;i>=1;i--) if(a[i]!=rtm.a[i]) return 0;return 1;}bool operator <(const Big_Int &rtm) const{if(len!=rtm.len) return len<rtm.len;for(int i=len;i>=1;i--) if(a[i]!=rtm.a[i]) return a[i]<rtm.a[i];return 0;}bool operator >(const Big_Int &rtm) const{return rtm<(*this);}bool operator <=(const Big_Int &rtm) const{return (*this)<rtm||(*this)==rtm;}bool operator >=(const Big_Int &rtm) const{return (*this)>rtm||(*this)==rtm;}bool operator ==(const int &val) const{Big_Int rtm; rtm=val;return (*this)==rtm;}bool operator <(const int &val) const{Big_Int rtm; rtm=val;return (*this)<rtm;}bool operator >(const int &val) const{Big_Int rtm; rtm=val;return (*this)<rtm;}bool operator <=(const int &val) const{Big_Int rtm; rtm=val;return (*this)<=rtm;}bool operator >=(const int &val) const{Big_Int rtm; rtm=val;return (*this)>=rtm;}void print(){printf("%d",a[len]);for(int i=len-1;i>=1;i--){printf("%03d",a[i]);}}
      };//2.Fraction
      //only support + , * and  reduction for fraction
      struct Fraction{ll Numerator,Denominator;ll Gcd(ll a,ll b){while(a^=b^=a^=b%=a);return b;}bool Zero(){return Numerator==0;}void Clear(){Numerator=Denominator=0;}void Reduction(){ll g=Gcd(Numerator,Denominator);Numerator/=g;Denominator/=g;}Fraction operator +(Fraction &rtm){Fraction New;if(!Numerator&&!Denominator) New.Numerator=rtm.Numerator,New.Denominator=rtm.Denominator;else{ll g=Gcd(Denominator,rtm.Denominator);ll a=Denominator/g,b=rtm.Denominator/g;New.Denominator=a*b*g;New.Numerator=Numerator*b+rtm.Numerator*a;}New.Reduction();return New;}Fraction operator *(Fraction &rtm){Fraction New;New.Denominator=Denominator*rtm.Denominator;New.Numerator=Numerator*rtm.Numerator;New.Reduction();return New;}void Read(){cin>>Numerator;Denominator=1;}void Write(){cout<<Numerator;if(Denominator!=1&&Denominator!=0) cout<<"/"<<Denominator<<endl;}
      }//3.Maxtrix
      //noly supprt * , ^(quick pow) for Maxtrix
      struct Maxtrix{int r,c;int val[75][75];Maxtrix(){r=c=0;memset(val,0,sizeof(val));}void identity(int l){r=c=l;for(int i=1;i<=l;i++) val[i][i]=1;}Maxtrix operator * (Maxtrix const b){  // c==b.rMaxtrix now; now.r=r; now.c=b.c;for(int i=1;i<=r;i++)for(int j=1;j<=b.c;j++)for(int k=1;k<=c;k++)now.val[i][j]=(now.val[i][j]+val[i][k]*b.val[k][j])%mod; return now;} Maxtrix operator ^ (int b){Maxtrix base,now; base=*this;now.identity(this->r); while(b){if(b&1) now=now*base;base=base*base;b>>=1; }return now;}
      }//____________________________________________________________________by *ZJ

 

  • 下午
    • 入门OJ 2069: [Noip模拟题]贪吃的CWT

      对拍了一下,改出来了呢。

      知道了错误在哪儿的我想打人……

      这是我原来错误的dis函数:

      image

      (真不知道是什么鬼样例数据,dis没开根都过了)

      代码:

      #include<cmath>
      #include<cstdio>
      #include<cstring>
      #include<iostream>
      #include<algorithm>
      using namespace std;
      struct edge{int u,v; double val;bool operator<(const edge &rtm) const{return val<rtm.val;} 
      }e[1005*1005];
      struct hamburger{int x,y,val;
      }p[1005];
      int fa[1005],bh[1005];
      int n,ent; 
      double tot,ans;
      double dis(int i,int j){return sqrt((p[i].x-p[j].x)*(p[i].x-p[j].x)+(p[i].y-p[j].y)*(p[i].y-p[j].y));
      }
      int find(int x){return fa[x]==x?x:fa[x]=find(fa[x]);
      }
      int main(){scanf("%d",&n);for(int i=1,a,b,c;i<=n;i++){scanf("%d%d%d",&a,&b,&c);p[i]=(hamburger){a,b,c};}for(int i=1;i<n;i++)for(int j=i+1;j<=n;j++)e[++ent]=(edge){i,j,dis(i,j)};sort(e+1,e+ent+1);for(int i=1;i<=n;i++) fa[i]=i;int fu,fv,u,v,need=n-1;for(int i=1;i<=ent&&need;i++){u=e[i].u; v=e[i].v;fu=find(u); fv=find(v);if(fu==fv) continue;tot+=e[i].val;fa[fv]=fu;need--;}for(int i=1;i<=n;i++) fa[i]=i;for(int i=1;i<=n;i++) bh[i]=p[i].val;need=n-1;for(int i=1;i<=ent&&need;i++){u=e[i].u; v=e[i].v;fu=find(u); fv=find(v);if(fu==fv) continue;ans=max(ans,1.0*(bh[fu]+bh[fv])/(tot-e[i].val));bh[fu]=max(bh[fu],bh[fv]);fa[fv]=fu;need--;}printf("%.2lf",ans);return 0;
      }
      
  • 入门OJ 2073: [Noip模拟题]古巴比伦

    一个皮皮题。

    我直接跑了个n2就过了,应该是数据水了……,

    但erge说if语句和++操作常数很小,跑108可以过!

    他的做法是:因为数据完全随机,所以当两个串的重叠部分长度小于某个值时,就可以直接跳出,

    至于小于哪个值,他说:“就自己估摸吧,我定的不能小于90%的长度。”

    ……

    代码:

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    using namespace std;
    char s1[10005],s2[10005];
    int ls1,ls2,cnt,ans; 
    void doit(char *A,int LA,char *B,int LB){for(int i=0;i<LA;i++){cnt=0;for(int j=0;j<LB&&i+j<LA;j++) if(A[i+j]==B[j]) cnt++;ans=max(ans,cnt);}
    }
    int main(){scanf("%d",&ls1); scanf(" %s",s1);scanf("%d",&ls2); scanf(" %s",s2);doit(s1,ls1,s2,ls2);doit(s2,ls2,s1,ls1);printf("%d",ans);return 0;
    }
    
  • 晚上
    • 回家了,lalala
  • End
    • 没有end,只有放假!

转载于:https://www.cnblogs.com/zj75211/p/7629216.html

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

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

相关文章

Mysql之CURDATE()函数,NOW()函数,CURTIME()函数

可以看到CURDATE() 取的是年月日&#xff0c;CURTIME()取的是时分秒, NOW()取的是年月日时分秒 NOW()取的是年月日时分秒SELECTNOW();可以看到CURDATE() 取的是年月日 SELECTCURDATE();CURTIME()取的是时分秒, SELECTCURTIME();

MS SqlServer中少用但是好用的SQL语句

代码 /*-- 2010-02-26 -- 布朗-- QQ:156298979*/--with ties可以附加与排序字段相同值的多个行selecttop3withties *fromhrEmployee orderbyshortName ascsetrowcount3--设置全局变量,使每次返回的行数都为3行select*fromhrEmployee orderbyshortName ascsetrowcount0--设置全局…

mysql查询当年年份

DATE_FORMAT(CURRENT_DATE,%Y)

MySQL 执行 PROCEDURE ANALYSE 报错 ERROR 1064 (42000)

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near PROCEDURE ANALYSE() at line 1, Time: 0.000000s mysql 8.0.29已经没有 PROCEDURE ANALYSE()语法了

谷歌退出中国几成定局 谈判已谈崩

为什么80%的码农都做不了架构师&#xff1f;>>> 虽然GOOGLE之前曾自食其言&#xff0c;但在之后的谈判中无论是哪一方都十分强硬&#xff0c;毕竟中国不可能因为一个公司而改变自己的审查制度&#xff0c;哪怕是 GOOGLE也不会是个意外。 自春节前GOOGLE表示要退出中…

IDEA翻译插件Translate安装

1:安装插件 idea找到Plugins 输入Translate 点击installed 重启 2:翻译代码 选中代码&#xff0c;右键点击Translate 就能翻译了

看看你的网站有几个这样的链接?

为什么80%的码农都做不了架构师&#xff1f;>>> 这些要求都达到了&#xff0c;就是完美SEO的开始 1.pr大于3的链接 2.外链页面相关 3.永久型单向链接 4.外链必须是唯一的页面&#xff0c;不能是同一个ip下的 5.外链页面必须是静态页面 ..... 随机文章&#xff1a; …

状态压缩DP入门

什么是状压DP&#xff1a; 动态规划的状态有时候比较恶心&#xff0c;不容易表示出来&#xff0c;需要用一些编码技术&#xff0c;把状态压缩的用简单的方式表示出来。 典型方式&#xff1a;当需要表示一个集合有哪些元素时&#xff0c;往往利用2进制用一个整数表示。 动态规…

InitializingBean、@PostConstruct、@Bean(initMethod = “init“)和构造方法 执行优先级比较

InitializingBean 1、InitializingBean接口为bean提供了初始化方法的方式&#xff0c;它只包括afterPropertiesSet方法&#xff0c;凡是继承该接口的类&#xff0c;在初始化bean的时候都会执行该方法。 2、spring初始化bean的时候&#xff0c;如果bean实现了InitializingBean接…

Windows 7 镜像制作过程

首先准备两台电脑&#xff0c;一台作为样机&#xff0c;一台作为技术人员电脑&#xff0c;技术人员电脑安装了Windows AIK第一部分、系统安装配置1、安装Windows 7 操作系统&#xff0c;步骤略过2、启用Administrator&#xff0c;使用Administrator登陆&#xff0c;然后在控制面…

论文笔记——Deep Model Compression Distilling Knowledge from Noisy Teachers

论文地址&#xff1a;https://arxiv.org/abs/1610.09650 主要思想 这篇文章就是用teacher-student模型&#xff0c;用一个teacher模型来训练一个student模型&#xff0c;同时对teacher模型的输出结果加以噪声&#xff0c;然后来模拟多个teacher&#xff0c;这也是一种正则化的方…

mysql清空全表数据建议直接用truncate,效率上truncate远高于delete

如果是清空全表数据建议直接用truncate&#xff0c;效率上truncate远高于delete&#xff0c;应为truncate不走事务&#xff0c;不会锁表&#xff0c;也不会生产大量日志写入日志文件&#xff1b;truncate table table_name 后立刻释放磁盘空间&#xff0c;并重置auto_increment…

[你必须知道的css系列]第一回:丰富的利器终结篇:选择符的组合关系及选择符总结...

介绍了这么多选择符&#xff0c;其实选择符的使用最大的优势不是单枪匹马奋斗&#xff0c;而应该是针对不同的页面结构组合成各种方阵。其主要方式体现在针对性使用类选择符或者 ID选择符、选择符群组及选择符组合这3种方式。一、针对性使用类选择符或者 ID选择符主要作用于类选…

SQL中delete和update后加 Limit是个好习惯

在业务场景要求高的数据库中&#xff0c;对于单条删除和更新操作&#xff0c;在 delete 和 update 后面加 limit 1 绝对是个好习惯。比如&#xff0c;在删除执行中&#xff0c;第一条就命中了删除行&#xff0c;如果 SQL 中有 limit 1&#xff1b;这时就 return 了&#xff0c;…

问题步骤记录器——“懒教师”的好帮手

场景&#xff1a;电话响&#xff0c;接通电话&#xff0c;电话另一端&#xff1a;我的电脑又怎么怎么了&#xff0c;为什么我的***弄不出那样的效果&#xff1f;请问***要怎样操作&#xff1f;感悟&#xff1a;虽然不是大虾&#xff0c;但由于众多同学当中&#xff0c;我仍然靠…

CCNA配置试验之七 PPP中PAP和CHAP的验证

PPP支持NCPC&#xff08;网络控制协议&#xff09;和LCP&#xff08;链路控制协议&#xff09;PPP的验证方式分为PAP二次握手明文传输和CHAP三次握手密文传输。试验配置PAP和CHAP的验证&#xff1a;试验配置如下&#xff1a;R1&#xff08;CHAP&#xff09;Router>enRouter#…

sql优化批量插入性能提升

建议批量插入 批量提交 INSERT into book VALUES(5,"A"),(6,"B");多条提交 INSERT into book VALUES(5,"A"); INSERT into book VALUES(6,"B") 理由 默认新增SQL有事务控制&#xff0c;导致每条都需要事务开启和事务提交&#xff0…