[Codeforces #494] Tutorial
记录下一开始写错的两道水题
E:
先建出直径,然后在保证直径不变的情况下按照最大度数贪心就好了
注意一下一开始的特判
#include <bits/stdc++.h> using namespace std;
#define X first
#define Y second
typedef pair<int,int> P;
int n,d,k,tot;vector<P> res; void print()
{
puts("YES");
for(int i=;i<res.size();i++)
printf("%d %d\n",res[i].X,res[i].Y);
} void dfs(int u,int v,int dist,int idx)
{
if(u) res.push_back(P(u,v));
if(tot==n) print(),exit();
if(!dist) return;
for(int i=;i<=idx;i++)
dfs(v,++tot,dist-,k-);
} int main()
{
scanf("%d%d%d",&n,&d,&k);
if(n<=d||n>&&k<) return puts("NO");
for(int i=;i<=d;i++) res.push_back(P(i,i+));
tot=d+;if(tot==n) return print(),;
for(int i=;i<=d;i++)
if(tot<n&&k>) dfs(,i,min(i-,d-i+),k-);
puts("NO");
return ;
}
Problem E
F:
又双叒叕看错题目了,可以缩减多个相同的串……
一开始写的$KMP$,后来发现直接字符串$Hash$就能水过了
注意:此题用$ab$串卡自然溢出,一共只有300个因此单模数就能过
数据开头$dont hash with overflow$好评!
#include <bits/stdc++.h> using namespace std;
typedef unsigned long long ull;
typedef pair<int,int> P; const int MAXN=;
ull hs[MAXN],MOD=;char s[];
int n,res,tot,len,pre[MAXN]; ull cal_hash()
{
ull ret=;
for(int i=;i<strlen(s);i++)
ret=(ret*+(s[i]-'a'+))%MOD;
return ret;
} int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
{
scanf("%s",s);int len=strlen(s);
tot+=len;pre[i]=pre[i-]+len;hs[i]=cal_hash();
}
tot+=n-; for(int i=;i<=n;i++)
for(int j=i;j<=n;j++)
{
int cnt=;
for(int k=j+;k+j-i<=n;k++)
{
bool f=true;
for(int l=;l<=j-i;l++)
if(hs[i+l]!=hs[k+l]) f=false;
if(f) cnt++,k+=j-i;
}
if(cnt>) res=max(res,(pre[j]-pre[i-]-)*cnt);
}
printf("%d",tot-res);
return ;
}
Problem F
[Codeforces #494] Tutorial的更多相关文章
- [Codeforces #172] Tutorial
Link: Codeforces #172 传送门 A: 一眼看上去分两类就可以了 1.每个矩形只有两条边相交,重合的形状为菱形 2.每个矩形四条边都有相交 对于情况1答案为$h*h/sin(a)$ ...
- [Codeforces #514] Tutorial
Link: Codeforces #514 传送门 很简单的一场比赛打崩了也是菜得令人无话可说…… D: 一眼二分,发现对于固定的半径和点,能包含该点的圆的圆心一定在一个区间内,求出区间判断即可 此题 ...
- [Codeforces #210] Tutorial
Link: Codeforces #210 传送门 A: 贪心,对每个值都取最大值,不会有其他解使答案变优 #include <bits/stdc++.h> using namespace ...
- [Codeforces #196] Tutorial
Link: Codeforces #196 传送门 A: 枚举 #include <bits/stdc++.h> using namespace std; #define X first ...
- [Codeforces #174] Tutorial
Link: Codeforces #174 传送门 A: 求原根的个数,有一条性质是原根个数为$\phi(\phi(n))$,多了一个不会证的性质 如果要确定哪些是原根的话还是要枚举,不过对于每个数不 ...
- [Codeforces #190] Tutorial
Link: Codeforces #190 传送门 A: 明显答案为$n+m-1$且能构造出来 #include <bits/stdc++.h> using namespace std; ...
- [Codeforces #211] Tutorial
Link: Codeforces #211 传送门 一套非常简单的题目,但很多细节都是错了一次才能发现啊…… 还是不能养成OJ依赖症,交之前先多想想corner case!!! A: 模拟,要特判0啊 ...
- [Codeforces #192] Tutorial
Link: Codeforces #192 传送门 前两天由于食物中毒现在还要每天挂一天的水 只好晚上回来随便找套题做做找找感觉了o(╯□╰)o A: 看到直接大力模拟了 但有一个更简便的方法,复杂度 ...
- [Codeforces #201] Tutorial
Link: 传送门 代码量很少的一套思维题 A: 试一试发现最后状态一定是所有$min,max$间$gcd$的倍数 直接判断数量的奇偶性即可 #include <bits/stdc++.h> ...
随机推荐
- Spring+SpringMVC+MyBatis整合(山东数漫江湖)
Spring+SpringMVC+MyBatis(SSM)在我们项目中是经常用到的,这篇文章主要讲解使用Intellij IDEA整合SSM,具体环境如下: 数据库:MySQL5.7 依赖管理:Mav ...
- ES6新用法
ES6 详细参考页面 简介 ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现.一般来说,这两个词是可以互换的. let命令 ES6新增了let命令,用来声明变 ...
- hdu 2717 Catch That Cow(广搜bfs)
题目链接:http://i.cnblogs.com/EditPosts.aspx?opt=1 Catch That Cow Time Limit: 5000/2000 MS (Java/Others) ...
- Linux目录结构与文件权限——(五)
1.目录结构
- shell下在while循环中使用ssh命令的问题
1 现象描述 最近使用ssh批量执行命令(已经做了密钥互信了),脚本读取配置文件中的主机列表(内容为每行一台主机IP地址),然后执行,可是每次只是执行第一台,就退出循环了. 2 排查思路 由于脚本比较 ...
- 我用.htaccess做了些什么?
1.防图片盗链,减轻流量压力: 2.index.php 301转向到域名,有利于PR权重集中: 3.其它还不会,慢慢来…… 我是如何做的? <IfModule mod_rewrite.c> ...
- 在linux内核中获得比jiffies精度更高的时间值【转】
转自:http://blog.chinaunix.net/uid-20672257-id-2831219.html 内核一般通过jiffies值来获取当前时间.尽管该数值表示的是自上次系统启动到当前的 ...
- 实验室项目.md
1 嵌入式操作系统 为什么要用嵌入式操作系统 普通的单片机编程:程序(软件)--单片机硬件: 嵌入式操作系统开发:程序(软件)--操作系统--嵌入式硬件(包括单片机等); 我们平时普通所学的单片机编程 ...
- AspxGridView 表中的ASPxHyperLink不导出到excel
在软件中 因为要连接到其他的页面所以类型转成了ASPxHyperLink,但是用官方的导出控件导出到excel之后,连接依旧保留着, 目的:去除导出来的连接 方法:把之前的ASPxHyperLink转 ...
- 文件上传实现ajax假异步
$.ajaxFileUpload({ url : getSitePath()+'/jlyElderly/doUpdateImage', secureuri : false,//是否需要安全协议 fil ...