第一届"进化论杯"月赛 解题报告
Problem A: derivative
思路:水题。算出二阶导数,直接 printf 结果。
在求出二阶导数后可以不立刻化简,此时式中带有大量 e^(-x) 项。此时直接可以代入 ln|x0|,把式子丢给程序运算即可,能稍微提高解题速度。
代码:
#include<bits/stdc++.h>
#include<vector>
using namespace std;
typedef long long ll;
int read(){
char ch=getchar();int x=0,f=1;
while (ch<'0' || ch>'9'){if (ch=='-') f=-1;ch=getchar();}
while (ch>='0' && ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*=f;
}
int main(){
int n=read();
while (n--){
double x;
scanf("%lf",&x);
x=1/fabs(x);
printf("%.3lf\n",(1+x)*(1+x)*(1+x)*(1+x)/(2.0*x*(1+x)*x-x*(1+x)*(1+x)));
}
return 0;
}
Problem B: fzuacmicpc
思路:水题。在环中找字符串并统计个数。复制字符串连接在末尾,然后枚举起点即可。
代码:
#include<bits/stdc++.h>
#include<vector>
using namespace std;
typedef long long ll;
int read(){
char ch=getchar();int x=0,f=1;
while (ch<'0' || ch>'9'){if (ch=='-') f=-1;ch=getchar();}
while (ch>='0' && ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*=f;
}
char ss[200020];
int main(){
cin>>ss;
int len=strlen(ss);
for (int i=0; i<len; i++){
if (ss[i]<='Z') ss[i]+=32;
}
for (int i=0; i<len; i++){
ss[len+i]=ss[i];
}
int ans=0;
for (int i=0; i<len; i++){
if (ss[i]=='f' && ss[i+1]=='z' && ss[i+2]=='u' && ss[i+3]=='a' &&ss[i+4]=='c' &&ss[i+5]=='m' &&ss[i+6]=='i' &&ss[i+7]=='c' && ss[i+8]=='p' && ss[i+9]=='c')
ans++;
if (ss[i]=='c' && ss[i+1]=='p' && ss[i+2]=='c' && ss[i+3]=='i' &&ss[i+4]=='m' &&ss[i+5]=='c' &&ss[i+6]=='a' &&ss[i+7]=='u' && ss[i+8]=='z' && ss[i+9]=='f')
ans++;
}
cout<<ans;
return 0;
}
Problem C: heroes
Problem D: ksubstring
思路:
代码:
#include<bits/stdc++.h>
using namespace std;
char ss[1000010];
int cnt[1000010][30];
int find(int l,int r,int k){
if (l>r) return 0;
int t=l-1,ans=0;
int f=0;
for (int i=l; i<=r; i++){
int a=ss[i]-'a';
if (cnt[r][a]-cnt[l-1][a]<k){
f=1;
ans=max(ans,find(t+1,i-1,k));
t=i;
}
}
if (f){
ans=max(ans,find(t+1,r,k));
return ans;
}
else return r-l+1;
}
int main(){
int n,k;
cin>>n>>k;
scanf("%s",ss+1);
int len=strlen(ss+1);
for (int i=1; i<=len; i++){
for (int j=0; j<=30; j++)
cnt[i][j]=cnt[i-1][j];
cnt[i][ss[i]-'a']++;
}
int ans=find(1,len,k);
if (ans) printf("%d",ans);
else printf("-1");
return 0;
}
Problem E: magicwall
Problem F: monoid-group
思路:水题。虽然题目很长,但读完题目发现只需要模拟就能过。
代码:
#include<bits/stdc++.h>
#include<vector>
using namespace std;
typedef long long ll;
ll read(){
char ch=getchar();ll x=0,f=1;
while (ch<'0' || ch>'9'){if (ch=='-') f=-1;ch=getchar();}
while (ch>='0' && ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*=f;
}
int num[1000010];
int main(){
ll n=read(),k=read();
for (int i=1; i<=n; i++)
num[i]=n-i+1;
ll tot=n*(n-1)/2;
if (k==tot){
printf("YES\n");
for (int i=1; i<=n; i++)
printf("%d ",num[i]);
return 0;
}
for (int i=1; i<=n; i++){
ll t=n-i+1;
t=t*(t-1)/2;
if (tot-t>k){
i--;
t=n-i+1;
t=t*(t-1)/2;
int res=(tot-t)-k,x=0;
for (int j=i; j<=n; j++){
num[j]=++x;
}
swap(num[i],num[i+res]);
printf("YES\n");
for (int j=1; j<=n; j++)
printf("%d ",num[j]);
return 0;
}
}
printf("NO");
return 0;
}
Problem G: ninja
思路:水题。虽然题目很长,但读完题目发现只要找到华丽值最大的边,然后在上面反复横跳k次即可。
计算华丽值:类似弗洛伊德;邻接表存图,每次枚举 i , j , k 判断(i,j)和(j,k)是否有边,若有,则(i,k)的华丽值加上(i,j)*(j,k)。
代码:
#include<bits/stdc++.h>
#include<vector>
using namespace std;
typedef long long ll;
ll read(){
char ch=getchar();ll x=0,f=1;
while (ch<'0' || ch>'9'){if (ch=='-') f=-1;ch=getchar();}
while (ch>='0' && ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*=f;
}
ll p[210][210],v[210][210];
int main(){
ll n=read(),m=read(),k=read();
for (int i=1; i<=m; i++){
ll a=read(),b=read(),c=read();
v[a][b]=c;
v[b][a]=c;
}
ll ans=0;
for (int i=1; i<=n; i++){
for (int j=1; j<=n; j++){
ll tot=0;
for (int k=1; k<=n; k++){
if (v[i][k] && v[k][j]) tot+=v[i][k]*v[k][j];
}
ans=max(ans,tot);
}
}
printf("%lld",ans*k);
return 0;
}
Problem H: permutation-generation
思路:考场上思路不清晰,用了很奇怪的做法调试了很久才过。
代码:
咕咕咕
第一届"进化论杯"月赛 解题报告的更多相关文章
- 2016 第七届蓝桥杯 c/c++ B组省赛真题及解题报告
2016 第七届蓝桥杯 c/c++ B组省赛真题及解题报告 勘误1:第6题第4个 if最后一个条件粗心写错了,答案应为1580. 条件应为abs(a[3]-a[7])!=1,宝宝心理苦啊.!感谢zzh ...
- 人生第一场CTF的解题报告(部分)
解题报告 濮元杰部分: 王者归来: 120 场景 小王入职了一段时间,最近有点无聊.Web安全项目不多,白天看着其他项目组的同事忙得热火朝天,小王有点坐不住了,这也许是新人都会有的想法,乐于助人.想到 ...
- 【剑指Offer】第一个只出现一次的字符 解题报告(Python)
[剑指Offer]第一个只出现一次的字符 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-intervie ...
- 【剑指Offer】字符流中第一个不重复的字符 解题报告(Python)
[剑指Offer]字符流中第一个不重复的字符 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-interv ...
- “九韶杯”河科院程序设计协会第一届程序设计竞赛 D数列重组 next_permutation
"九韶杯"河科院程序设计协会第一届程序设计竞赛 D数列重组 next_permutation 题目 原题链接: https://ac.nowcoder.com/acm/conte ...
- HDU 4869 Turn the pokers (2014多校联合训练第一场1009) 解题报告(维护区间 + 组合数)
Turn the pokers Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- 第十届蓝桥杯省赛JavaB组个人题解
前言 以下的第十届蓝桥杯Java B组省赛的题目题解只是我个人的题解,提供一些解题思路,仅作参考,如有错误,望大家指出,不甚感激,我会及时更改. 试题 A: 组队 ----- 答案:490 [问题描述 ...
- 2015年第六届蓝桥杯C/C++B组省赛题目解析
一.奖券数目 有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利.虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求.某抽奖活动的奖券号码是5位数(10000-99999),要求其中 ...
- 2019年第十届蓝桥杯【C++省赛B组】
试题 A: 组队 本题总分:5 分 作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员,组成球队的首发阵容.每位球员担任 1 号位至 5 号位时的评分如下表所示.请你计算首发阵容 ...
随机推荐
- Django学习笔记3-静态文件调用
1.settings.py 静态文件相关示例代码及说明: # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.c ...
- ORALCE表的约束条件
一.主键:(PRIMARY KEY) 主键是表中的一列或多列.为表定义主键有如下几个作用: 1.主键包含的列不能输入重复的值,以此来保证一个表的所有行的唯一性: 2.主键也不允许定义此约束的列为NUL ...
- linux 操作之压缩与解压
压缩与解压 压缩格式:zip , rar , 7z , iso , exe gzip (以下是命令操作) gzip [文件名] #压缩成gz格式 , 原来的文件消失 , 不支持目录. bzip2 - ...
- 帝国CMS如何禁止内容关键字替换ALT和title中的关键词为链接
很多帝国cms用户喜欢使用关键字替换来实现文章自动内链的方法. 为什么要用关键词替换功能呢?这关系到站内优化,下面直接进入正题. 解决办法:打开e/class/functions.php 查找 '/' ...
- 2.1 摄像头V4L2驱动框架分析
学习目标:学习V4L2(V4L2:vidio for linux version 2)摄像头驱动框架,分析vivi.c(虚拟视频硬件相关)驱动源码程序,总结V4L2硬件相关的驱动的步骤: 一.V4L ...
- BAPIを使用のODATA作成
入力: AIRLINE テーブル: FLIGHT_LIST Step 1: TCode: SEGW ⇒新規作成ボタンを押す Step 2: オブジェクト名など入力 Step 3: オブジェクト作成完了 ...
- 20145209刘一阳《JAVA程序设计》第1周学习总结
20145209刘一阳<JAVA程序设计>第1周学习总结 本周任务 了解Java基础知识 了解JVM.JRE与JDK,并下载.安装.测试JDK 了解PATH.CLASSPATH.SOURC ...
- CF 314 E. Sereja and Squares
E. Sereja and Squares http://codeforces.com/contest/314/problem/E 题意: 给你一个擦去了部分左括号和全部右括号的括号序列,括号有25种 ...
- 离线安装Sharepoint工具
1. 首先安装操作系统,Windows Server 2008 R2,可以是企业版,也可以是数据中心版.然后再安装上SP1. 2. 在"服务管理"里面,添加角色,安装IIS. ...
- Windows运行机理——消息与消息队列
Windows运行机理这系列文章都是来至于<零基础学Qt4编程>——吴迪,个人觉得写得很好,所以进行了搬运和个人加工 Windows程序设计时一种基于消息的时机驱动方式的设计模式,完全不同 ...