文章目录

  • 前言
  • D.Artifacts
  • F. Fixing Networks
  • L. Random Permutation
  • 总结

前言

vp

D.Artifacts

题意:阅读理解,字符串中提取出来对应的数据直接处理就好。

coding

void solve()
{double ATK=0,Cirt=5,DMG=50,ATK_Rate=0;for(int i=1;i<=25;i++){string s,temp;getline(cin,s);int t=0;for(int j=0;j<(int)s.size();j++){if(s[j]=='+')break;t=j;}string s1,s2;s1=s.substr(0,t+1);s2=s.substr(t+2);double num=0;int flag=0;for(int k=0;k<(int)s2.size();k++){if(s2[k]=='%')break;else if(s2[k]!='.'&&!flag)num=num*10+(s2[k]-'0');else if(s2[k]=='.')flag=k;else num+=pow(0.1,k-flag)*(s2[k]-'0');}if(s1=="ATK")ATK+=num;else if(s1=="ATK Rate")ATK_Rate+=num;else if(s1=="Crit Rate"){Cirt+=num;if(Cirt>=100)Cirt=100;}else if(s1=="Crit DMG Rate")DMG+=num;else continue;}ATK=1500*(1+0.01*ATK_Rate)+ATK;printf("%.10lf\n",ATK*(1-0.01*Cirt)+ATK*(1+DMG*0.01)*Cirt*0.01);
}

F. Fixing Networks

题意:n个点,构造分成c个集合,并且每个点的度数为d的图。
问:能否构造?如果能,那么每个点连接的点是什么?
思路:
1.d=0时,单点集合n=c
2.d=1时,双点集合c=n/2
3.d>1时,如果能够构成,那么每个集合至少含有d+1个点(构成环),最多连接的边数为nd/2,那么能够构成的条件一定是c(d+1)<n&&(nd%2==0)
4.能够构成时,将c-1个构成完全图,剩余的点再进行顺时针同一方向旋转。
设m=n-(c-1)
(d+1),取前m个点作为第c个图方便判断一些。

连接图时,类似这样按照一个方向进行连边,连接的是双向边,和相对的那个点开始连接。要注意的是,点数为奇数时会有两个点相对,那么从小的那个开始。

coding

void solve()
{ll n, c, d;scanf("%lld %lld %lld", &n, &d, &c);//特判完全图不是整数条边的情况和点数多了的情况if (((n * d) & 1) || (n < c * (d + 1))){printf("No");return;}//特判单点集合和只有一条边的集合if (d == 0){if (n == c){printf("Yes");}elseprintf("No");return;}else if (d == 1){if (n == c * 2){printf("Yes\n");for (int i = 1; i <= n; i++){if (i & 1)printf("%d\n", i + 1);elseprintf("%d\n", i - 1);}}elseprintf("No");return;}//特判都能够满足,就一定能够构成满足条件的情况//先构成c-1个完全图,剩下的点再进行链接printf("Yes\n");//完全图的点数为d+1,计算最后一个集合的点数int m = n - (c - 1) * (d + 1);vector<int> v[n + 1];//先连成环for (int i = 1; i <= m - 1;i++)v[i].push_back(i + 1), v[i + 1].push_back(i);v[1].push_back(m);v[m].push_back(1);//成环后度数-2int k = d - 2;for (int i = 1; i <= m;i++){int l = i + m/ 2;l %= m;if (l == 0)l = m;//一定记得只有奇数点时采才用加入这条边if(k&1)v[i].push_back(l);for (int j = 1; j <= k / 2;j++){l++;if (l > m)l = 1;v[i].push_back(l);v[l].push_back(i);}}for (int i = 1; i <= m;i++){sort(v[i].begin(), v[i].end());for(auto t:v[i])printf("%d ", t);printf("\n");}//c-1个完全图for (int i = 0; i < c - 1;i++){int l = i * (d + 1) + m + 1, r = (i + 1) * (d + 1) + m;for (int j = l; j <= r;j++){for (int k = l; k <= r;k++){if(j==k)continue;printf("%d ",k);}printf("\n");}}
}

L. Random Permutation

模拟

void solve(){double n;cin >> n;double a = 1;for(int i=1;i<=n;i++)a *= 1.0 * i;a *= a;double s =  1.0;for(int i=1;i<=n;i++)s *= 1.0 * n;double y = 1.0 * a / s;printf("%.20lf", y);
}

总结

待补:
A.fft
G.博弈
I.Nim游戏

The 2020 ICPC Asia Macau Regional Contest相关推荐

  1. 并查集 ---- 扩展域并查集判二分图 + 循环模拟字典树 The 2020 ICPC Asia Macau Regional Contest C. Club Assignment (详解)

    题目链接 题目大意: 有n个数,现在要把他们拆分成两个集合,假设S为集合,有如下定义: f(S)={min(x⊕y)∣x,y∈S,andx!=y}f(S)=\{min(x\oplus y)|x,y\i ...

  2. The 2020 ICPC Asia Macau Regional Contest J. Jewel Grab(数颜色+链表)

    J. Jewel Grab Tartarus _Wallace_ 转化询问:对于一个询问 [s,k],找到一个最长的区间 [s,t],满足区间中出现次数超过一次的元素,的出现次数减一,的和,不超过 k ...

  3. The 2020 ICPC Asia Macau Regional Contest A. Accelerator(分治+NTT)

    A. Accelerator 实质上就是求n个多项式相乘 (a1+x)(a2+x)-(an+x)(a_1+x)(a_2+x)\dots(a_n+x) (a1​+x)(a2​+x)-(an​+x) 对于 ...

  4. The 2020 ICPC Asia Shenyang Regional Programming Contest I题 Rise of Shadows(数论)

    题目链接The 2020 ICPC Asia Shenyang Regional Programming Contest 题目大意: 一天内有H小时,每小时M分钟,时针分针以恒定速率旋转. 现在若时针 ...

  5. The 2020 ICPC Asia Yinchuan Regional Programming Contest

    The 2020 ICPC Asia Yinchuan Regional Programming Contest A 开三个vector数组存储x,y,z轴上的点,unique+erase去重 #in ...

  6. The 2019 ICPC Asia Shanghai Regional Contest

    The 2019 ICPC Asia Shanghai Regional Contest 题号 题目 知识点 A Mr. Panda and Dominoes B Prefix Code C Maze ...

  7. 2018 ICPC Asia Jakarta Regional Contest

    2018 ICPC Asia Jakarta Regional Contest 题号 题目 知识点 难度 A Edit Distance B Rotating Gear C Smart Thief D ...

  8. 【题目记录】——The 2021 ICPC Asia Jinan Regional Contest

    文章目录 C Optimal Strategy 组合数 H Game Coin K Search For Mafuyu 欧拉序列 题目集地址 The 2021 ICPC Asia Jinan Regi ...

  9. 2019-2020 ICPC Asia Xuzhou Regional Contest【徐州现场赛】

    题目: 209-2020 ICPC Asia Xuzhou Regional Onsite Contest E. Multiply 题意: 找到最大的 i 使得 z*x^i 是 y! 的因子 分析: ...

最新文章

  1. 双线性插值(Bilinear Interpolation)
  2. vcard 2.1介绍
  3. 安全:incaseformat蠕虫病毒来袭,你中招了吗?
  4. vscode 调试参数_如何通过vscode运行调试javascript代码
  5. html管道符需要转义么,为什么String.split需要管道分隔符进行转义?
  6. php主键自增sql语句,sql 自动增长的主键
  7. 超火的漫画线稿上色AI出新版了!无监督训练,效果更美好 | 代码+Demo
  8. 深度学习入门:一句话告诉你什么是神经网络(CNN,RNN,DNN)
  9. MySQL 之 query cache
  10. [笔记]ASCLL码表(48 “0”,65 “A”,97 “a”)2022.3.12
  11. 数字图像处理-基于Matlab水果识别系统(图片识别)
  12. matlab怎么新建m file,matlab2020如何建立m文件-matlab创建M-file文件的方法
  13. 使用表格制作流量查询表
  14. 苹果电脑快速重装Windows系统
  15. 280. 陪审团 poj1015(背包DP)
  16. 负数除以正数余数如何求_关于数学中求余数问题的一个简单方法
  17. ChatGPT专业应用:撰写节日营销活动方案
  18. 基础算法学习大纲(附加yxc大佬算法模板)
  19. 变频电源使用脉冲宽度调制方式会对周边设备造成什么影响,该如何去防护
  20. BZOJ 1911 (APIO 2010) 特别行动队

热门文章

  1. 【ansys workbench】3.圆角L型支架的应力结果
  2. 有哪些简单好用的国产数据库?
  3. Mysql之分组查询
  4. web服务器种类汇集
  5. Wechaty|不使用微信的web协议的机器人
  6. 小米5S刷机认真看一眼就能会的简单详细教图文
  7. 用Photoshop制作1寸和2寸的照片
  8. Sap BussinessObjects DesignStudio-infoChart缺陷改进
  9. 竞品分析----夸克:我离百度还有多少步?
  10. vue和php前后端分离