目录

  • 2018.9.28 正睿普及3

    • A
    • B
    • C
    • D
    • 考试代码
      • D


2018.9.28 正睿普及3

时间:(实际)
期望得分:100+100+100+...100?
实际得分:100+96+100+0

比赛链接

D这种模拟还是趁早放弃好
放代码自己体会

C题是搞笑的吧

过几天能交了再改

A

题目链接

#include <cstdio>
#include <cctype>
#include <algorithm>
#define gc() getchar()
typedef long long LL;
const int N=1e6+5;inline int read()
{int now=0;register char c=gc();for(;!isdigit(c);c=gc());for(;isdigit(c);now=now*10+c-'0',c=gc());return now;
}int main()
{
//  freopen(".in","r",stdin);
//  freopen(".out","w",stdout);LL a=read(),b=read(),c=read();if(a==1||b==1||c==1) return putchar('0'),0;LL ans=2ll*a*b;ans+=2ll*(b*c-b*2);ans+=2ll*(a*c-c*2-std::max(0ll,a-2)*2);printf("%lld\n",a*b*c-ans);return 0;
}

B

题目链接

#include <cstdio>
#include <cctype>
#include <algorithm>
#define gc() getchar()
typedef long long LL;int opt[7];
LL a,b,c,d,Ans;inline int read()
{int now=0,f=1;register char c=gc();for(;!isdigit(c);c=='-'&&(f=-1),c=gc());for(;isdigit(c);now=now*10+c-'0',c=gc());return now*f;
}
void DFS(int x)//懒得换double怎么办
{// 1+ 2- 3* 4/if(x>3){LL res=0,tmp;if(opt[1]==1||opt[1]==2){if(opt[2]==1||opt[2]==2){if(opt[3]==1||opt[3]==2)res=a+(opt[1]==1?b:-b)+(opt[2]==1?c:-c)+(opt[3]==1?d:-d);else{if(opt[3]==4 && c%d) return;tmp=opt[3]==3?c*d:c/d;res=a+(opt[1]==1?b:-b)+(opt[2]==1?tmp:-tmp);}}else{if(opt[2]==4 && b%c){if(opt[3]==3 && !(b*d%c)) Ans=std::min(Ans,std::abs(a+(opt[1]==1?1ll:-1ll)*b*d/c));return;}tmp=opt[2]==3?b*c:b/c;if(opt[3]==1||opt[3]==2)tmp+=(opt[3]==1?d:-d);else{if(opt[3]==4 && tmp%d) return;tmp=(opt[3]==3?tmp*d:tmp/d);}res=opt[1]==1?a+tmp:a-tmp;}}else//*/{if(opt[1]==4 && a%b){if(opt[2]==3){//mmpif(opt[3]==3)if(!(a*c*d%b)) Ans=std::min(Ans,std::abs(a*c*d/b));else return;else if(opt[3]==4)if(!(a*c%(b*d))) Ans=std::min(Ans,std::abs(a*c/b/d));else return;else if(!(a*c%b)) Ans=std::min(Ans,std::abs(a*c/b+(opt[3]==1?d:-d)));else return;}else if(opt[2]==4){if(opt[3]==3)if(!(a*d%(b*c))) Ans=std::min(Ans,std::abs(a*d/b/c));else return;else return;}return;}tmp=opt[1]==3?a*b:a/b;if(opt[2]==1||opt[2]==2){if(opt[3]==1||opt[3]==2)res=tmp+(opt[2]==1?c:-c)+(opt[3]==1?d:-d);else{if(opt[3]==4 && c%d) return;res=tmp+(opt[2]==1?(opt[3]==3?c*d:c/d):-(opt[3]==3?c*d:c/d));}}else{if(opt[2]==4 && tmp%c){if(opt[3]==3 && !(tmp*d%c)) Ans=std::min(Ans,std::abs(tmp*d/c));else return;return;}tmp=opt[2]==3?tmp*c:tmp/c;if(opt[3]==1||opt[3]==2)res=opt[3]==1?tmp+d:tmp-d;else{if(opt[3]==4 && tmp%d) return;res=opt[3]==3?tmp*d:tmp/d;}}}
//      printf("%d %d %d %I64d\n",opt[1],opt[2],opt[3],res);Ans=std::min(Ans,std::abs(res));return;}for(int i=1; i<=4; ++i)opt[x]=i, DFS(x+1);
}int main()
{
//  freopen(".in","r",stdin);
//  freopen(".out","w",stdout);a=read(),b=read(),c=read(),d=read();Ans=std::abs(a+b+c+d), DFS(1), printf("%lld\n",Ans);return 0;
}

C

题目链接

#include <cstdio>
#include <cctype>
#include <vector>
#include <algorithm>
#define gc() getchar()
#define MAXIN 300000
//#define gc() (SS==TT&&(TT=(SS=IN)+fread(IN,1,MAXIN,stdin),SS==TT)?EOF:*SS++)
typedef long long LL;
const int N=1e5+5;int n,tot,dep[N],fa[N];
LL Ans;
std::vector<int> e[N];inline int read()
{int now=0;register char c=gc();for(;!isdigit(c);c=gc());for(;isdigit(c);now=now*10+c-'0',c=gc());return now;
}
inline void AE(int u,int v)
{e[u].push_back(v), e[v].push_back(u);
}
bool cmp(int x,int y)
{return dep[x]<dep[y];
}
void DFS1(int x)
{for(int i=0,l=e[x].size(),v; i<l; ++i)if((v=e[x][i])!=fa[x])fa[v]=x, dep[v]=dep[x]+1, DFS1(v);
}
void DFS2(int x)
{static int Time=0;Ans+=tot-Time, ++Time;
//  std::sort(e[x].begin(),e[x].end(),cmp);for(int i=0,l=e[x].size(),v; i<l; ++i)if((v=e[x][i])!=fa[x]) DFS2(v), ++Time;
}int main()
{
//  freopen(".in","r",stdin);
//  freopen(".out","w",stdout);n=read(), tot=2*n-2;for(int i=1; i<n; ++i) AE(read(),read());DFS1(1), DFS2(1);printf("%lld\n",Ans);return 0;
}

D

题目链接

考试代码

D

#include <cstdio>
#include <cctype>
#include <cstring>
#include <algorithm>
#define gc() getchar()
typedef long long LL;
const int N=1e5+7;int n;
char s[N];int Nxt_Oct(int now,int &p)
{if(now>n) {p=now; return 0;}int nxt,res=0;while(s[now]=='O'){nxt=now+1,res=0;while(nxt<=n && isdigit(s[nxt])) res=res*10+s[nxt]-'0', ++nxt;now=nxt;}p=now;return res;
}
void Nxt_Vol(int now,int &p,int &vol,int &ans)
{int nxt=now+1,res=0,tmp=now;while(s[now]=='V'){nxt=now+1,res=0;while(nxt<=n && isdigit(s[nxt])) res=res*10+s[nxt]-'0', ++nxt;tmp=now, now=nxt;}p=now;for(int i=now; i<=n; ++i)if(isalpha(s[i]) && s[i]!='V' && s[i]!='O') {ans+=now-tmp; break;}else if(i==n) p=n+1;if(res!=vol) vol=res;
}int main()
{
//  freopen(".in","r",stdin);
//  freopen(".out","w",stdout);while(scanf("%s",s+1),s[1]!='*'){n=strlen(s+1), s[n+1]='$';int oct=4,real=4,vol=100;//volumeint ans=0,now=1;for(; now<=n; ){
//          printf("n:%d now:%d oct:%d real:%d vol:%d ans:%d\n",n,now,oct,real,vol,ans);if(s[now]=='V'){int nxt=now+1,res=0,tmp=now;while(s[now]=='V'){nxt=now+1,res=0;while(nxt<=n && isdigit(s[nxt])) res=res*10+s[nxt]-'0', ++nxt;tmp=now, now=nxt;}if(nxt>n) break;if(res!=vol) vol=res, ans+=nxt-tmp;}else if(s[now]=='O'){int nxt,res=oct;while(s[now]=='O'){nxt=now+1,res=0;while(nxt<=n && isdigit(s[nxt])) res=res*10+s[nxt]-'0', ++nxt;now=nxt;}if(nxt>n) break;if(std::abs(oct-res)>1){if(res>oct) ans+=res-oct-1, oct=res-1;else ans+=oct-res-1, oct=res+1;}real=res;}else if(real==oct){if(now+1<=n && s[now]=='B' && s[now+1]=='+'){int nxt=now+2,tm=1;while(nxt+1<=n && s[nxt]=='B' && s[nxt+1]=='+') nxt+=2, ++tm;now=nxt;if(tm==1){if(s[now]!='O'&&s[now]!='V') ;//还有bug mmp else if(s[now]!='O'){Nxt_Vol(now,now,vol,ans);if(now>n) now=n+1;}if(s[now]=='O'){int tmp,nxtoct=Nxt_Oct(now,tmp);now=tmp;while(now<=n && s[now]=='V'){Nxt_Vol(now,now,vol,ans);if(now>n) now=n+1;if(s[now]=='O')nxtoct=Nxt_Oct(now,tmp), now=tmp;}if(tmp>n) ans+=2;else if(nxtoct>oct){ans+=2, ++oct;real=nxtoct;if(std::abs(oct-real)>1){if(real>oct) ans+=real-oct-1, oct=real-1;else ans+=oct-real-1, oct=real+1;}}else ans+=2;}else ans+=2;}else ans+=tm+1, ++oct;}else if(now+1<=n && s[now]=='C' && s[now+1]=='-'){int nxt=now+2,tm=1;while(nxt+1<=n && s[nxt]=='C' && s[nxt+1]=='-') nxt+=2, ++tm;now=nxt;if(tm==1){if(s[now]!='O'&&s[now]!='V') ;else if(s[now]!='O'){Nxt_Vol(now,now,vol,ans);if(now>n) now=n+1;}if(s[now]=='O'){int tmp,nxtoct=Nxt_Oct(now,tmp);now=tmp;while(now<=n && s[now]=='V'){Nxt_Vol(now,now,vol,ans);if(now>n) now=n+1;if(s[now]=='O')nxtoct=Nxt_Oct(now,tmp), now=tmp;}if(tmp>n) ans+=2;else if(nxtoct<oct){ans+=2, --oct;real=nxtoct;if(std::abs(oct-real)>1){if(real>oct) ans+=real-oct-1, oct=real-1;else ans+=oct-real-1, oct=real+1;}}else ans+=2;now=tmp;}else ans+=2;}else ans+=tm+1, --oct;}else{while(now<=n && ((s[now]=='+'||s[now]=='-')||((s[now]!='V' && s[now]!='O' && (now==n||s[now]!='C'||s[now+1]!='-') && (now==n||s[now]!='B'||s[now+1]!='+')))))
//                      printf("Loop:%d %d %d\n",ans,now,n),++ans, ++now;}}else if(real>oct){int tm=0;while(now+1<=n && s[now]=='C' && s[now+1]=='-')++tm, now+=2;ans+=tm;if(s[now]!='O'&&s[now]!='V') ;else if(s[now]!='O'){Nxt_Vol(now,now,vol,ans);if(now>n) now=n+1;}if(s[now]=='O'){int tmp,nxtoct=Nxt_Oct(now,tmp);if(tmp>n) ;else// if(nxtoct<oct){real=nxtoct;if(std::abs(oct-real)>1){if(real>oct) ans+=real-oct-1, oct=real-1;else ans+=oct-real-1, oct=real+1;}}now=tmp;}else if(now<=n) ++ans, ++oct;}else if(real<oct){int tm=0;while(now+1<=n && s[now]=='B' && s[now+1]=='+')++tm, now+=2;ans+=tm;if(s[now]!='O'&&s[now]!='V') ;else if(s[now]!='O'){Nxt_Vol(now,now,vol,ans);if(now>n) now=n+1;}if(s[now]=='O'){int tmp,nxtoct=Nxt_Oct(now,tmp);if(tmp>n) ;else// if(nxtoct<oct){real=nxtoct;if(std::abs(oct-real)>1){if(real>oct) ans+=real-oct-1, oct=real-1;else ans+=oct-real-1, oct=real+1;}}now=tmp;}else if(now<=n) ++ans, --oct;}}printf("%d\n",ans);}return 0;
}

转载于:https://www.cnblogs.com/SovietPower/p/9721740.html

9.28 正睿普及3相关推荐

  1. 2019金华正睿集训总结

    emmm-蒟蒻第一次出来集训,也是2019年noip(现在应该叫csp的说)前最后一次外出集训- 感觉压力好大啊-毕竟才学了不到一年啊- 但不管怎样,接下来几天要好好加油啊! DAY1 仅自己用的链接 ...

  2. 8.8 正睿暑期集训营 Day5

    目录 2018.8.8 正睿暑期集训营 Day5 总结 A 友谊巨轮(线段树 动态开点) B 璀璨光滑 C 构解巨树 考试代码 A B C 2018.8.8 正睿暑期集训营 Day5 时间:3.5h( ...

  3. 11.2 正睿停课训练 Day15

    目录 2018.11.2 正睿停课训练 Day15 A 郁闷的小G(二分) B 小G的树(树形DP) C 数的距离(思路) 考试代码 B C 2018.11.2 正睿停课训练 Day15 时间:3.5 ...

  4. 9.29 正睿提高6

    目录 2018.9.29 正睿提高6 A B C 考试代码 B C 2018.9.29 正睿提高6 时间:3.5h(实际) 期望得分:100+30+1 实际得分:100+20+0 比赛链接 T3想了一 ...

  5. 2021/9/12正睿10测Day.3

    半个小时左右大概看完了题,主要刚开始的时候吃了些东西. 这是第三次打正睿的十连,也是头一次在打正睿的十连遇到捆绑测试,对于我这种骗分狗来说首先心态上就很折磨,有些 subtask 只给了其中一两个量的 ...

  6. 8.10 正睿暑期集训营 Day7

    目录 2018.8.10 正睿暑期集训营 Day7 总结 A 花园(思路) B 归来(Tarjan 拓扑) C 机场(凸函数 点分治) 考试代码 A B C 2018.8.10 正睿暑期集训营 Day ...

  7. 7.30 正睿暑期集训营 A班训练赛

    目录 2018.7.30 正睿暑期集训营 A班训练赛 T1 A.蔡老板分果子(Hash) T2 B.蔡老板送外卖(并查集 最小生成树) T3 C.蔡老板学数学(DP NTT) 考试代码 T2 T3 2 ...

  8. 省选模拟赛(正睿的最后一场)

    省选模拟赛(正睿的最后一场!!) 比赛时间安排 与正解的差距 T1 比赛时间安排 7.30-7.40 t1 能拿10分dfs,n=0的情况或许可以找规律 t2 看不懂 t3 暴力挺好写的,求lca太麻 ...

  9. 8.6 正睿暑期集训营 Day3

    目录 2018.8.6 正睿暑期集训营 Day3 A 亵渎(DP) B 绕口令(KMP) C 最远点(LCT) 考试代码 A B C 2018.8.6 正睿暑期集训营 Day3 时间:5h(实际) 期 ...

  10. 2019.7.28 金华正睿集训总结Day1

    课表如下: 7.28 上午 概率与期望 基本概念 • 随机变量:有多种可能的取值的变量 • P(A):事件 A 发⽣的概率 • E(X):随机变量 X 的期望值,E(X) = ∑ i P ( X = ...

最新文章

  1. Linux的重要支柱
  2. 无中生有 : 对称方波中的二次谐波
  3. IC/RFID/NFC 关系与区别
  4. windows 2008 R2下(AD RMS)无法检索证书层次结构的解决方法
  5. PHP Yii框架中使用smarty模板
  6. qt获取当前场景中的所有图形项的层次
  7. Linux 配置本地yum源步骤
  8. 【优化预测】基于matlab天牛须算法优化BP神经网络预测【含Matlab源码 1318期】
  9. IAR软件生成库文件.a的license限制
  10. uniapp支付打开支付宝app进行付款
  11. Linux下使用ISC DHCP可以实现动态推送静态路由表
  12. java-php-python-ssm新生报到管理计算机毕业设计
  13. Wannafly挑战赛29-御坂美琴(递归模拟)
  14. 互联网服务器信息检索,网络信息检索的一般方法
  15. 基于Faster-RCNN的目标检测(TF版) 步骤与问题解决办法
  16. [Unity]动态人物头像
  17. Mac下手动安装Tex/Latex Package
  18. C# FileSystemWatcher监控新生成的文件
  19. Linux 中把Python3设为默认Python版本的几种方法
  20. 怎样查询计算机登录记录,qq登陆记录,教您QQ如何查看登录历史记录

热门文章

  1. IPSec的IKEv1和IKEv2协议
  2. OpenGL中PBR着色器的实现
  3. 腾讯题目——求磁头平均寻道长度
  4. 开关电源学习笔记9 --- SPEIC变换器
  5. Unity il2cpp LinuxInterop_dlopen Error
  6. OSPF的6种LSA
  7. 服务器自动关机重启1076,状态服务器上的事件 ID 1072 或1076 - ASP.NET | Microsoft Docs...
  8. HYPERLEDGER FABRIC网络搭建之network e2ecli_default not found
  9. 手把手带你在Java中用【数组】和【链表】实现栈
  10. linux kvm参数,virt-install创建kVM参数