CF #621 div.2
三连否认跪了
T1
开了第一题水题,一遍交过
/* make by ltao */
#include <iostream>
#include <cstdio>
#include <cstring>
#include <stack>
#include <cmath>
#include <algorithm>
#include <queue>
#include <deque>
#include <map>
#include <list>
#include <string>
#include <bits/stdc++.h>
#include <vector>
#include <set>
#include <string>
typedef long long ll;
typedef unsigned long long ull;
typedef double db;
#define sz 666666
#define fake int
#define get() getchar()
int read(){
int x=0;bool f=0;
char ch=get();
while(ch<'0'||ch>'9'){
if(ch=='-') f=1;
ch=get();
}
while(ch<='9'&&ch>='0'){
x=(x<<1)+(x<<3)+(ch-'0');
ch=get();
}
return f?-x:x;
}
char GG(){
char ch=get();
while(ch==' '||ch=='\r'||ch=='\n') ch=get();
return ch;
}
using namespace std;
int t,n,d,ans,a[sz];
int main(){
// freopen("a.in","r",stdin);
t=read();
while(t--){
n=read();d=read();ans=0;
for(int i=1;i<=n;i++) a[i]=read();
ans=a[1];
for(int i=2;i<=n;i++){
if(d>=i-1){
int q=min(d/(i-1),a[i]);
d-=q*(i-1);
ans+=q;
}
else break;
}
printf("%d\n",ans);
}
return 0;
}
T2
也是·水题
/* make by ltao */
#include <iostream>
#include <cstdio>
#include <cstring>
#include <stack>
#include <cmath>
#include <algorithm>
#include <queue>
#include <deque>
#include <map>
#include <list>
#include <string>
#include <bits/stdc++.h>
#include <vector>
#include <set>
#include <string>
typedef long long ll;
typedef unsigned long long ull;
typedef double db;
#define sz 666666
#define fake int
#define get() getchar()
int read(){
int x=0;bool f=0;
char ch=get();
while(ch<'0'||ch>'9'){
if(ch=='-') f=1;
ch=get();
}
while(ch<='9'&&ch>='0'){
x=(x<<1)+(x<<3)+(ch-'0');
ch=get();
}
return f?-x:x;
}
char GG(){
char ch=get();
while(ch==' '||ch=='\r'||ch=='\n') ch=get();
return ch;
}
using namespace std;
int t,n,ans,a[sz],x;
int main(){
t=read();
while(t--){
n=read();x=read();int max1=0;bool flag=0;
for(int i=1;i<=n;i++){
a[i]=read();
if(a[i]==x) flag=1;
max1=max(max1,a[i]);
}
if(flag){
printf("1\n");
continue;
}
else if(max1>x)
printf("2\n");
else printf("%d\n",x%max1!=0?x/max1+1:x/max1);
}
return 0;
}
T3
我**,md有一个是算术级数的条件。。。。。。
#include <iostream>
using namespace std;
typedef long long ll;
ll arr1[26],arr2[26][26];
int main(){
string S;
cin>>S;
for (int i=0;i<S.length();i++){
int c=S[i]-'a';
for (int j=0;j<26;j++)
arr2[j][c]+=arr1[j];
//就是说 arr[i][j]
//表示 i,j 的出现数
arr1[c]++;
}
ll ans=0;
for (int i=0;i<26;i++)
ans=max(ans,arr1[i]);
for (int i=0;i<26;i++)
for (int j=0;j<26;j++)
ans=max(ans,arr2[i][j]);
cout<<ans<<endl;
}
但是值得一提的是,你要讨论size=1或2,因为差不固定
T4
这个题感触颇深,其实刚开始想到了分层图,然后炸了,,,,他只能跑最短的最短路。。
但是,他要你查最长的最短路。。
于是,我们可以跑一个最短路 通过枚举每条边,来做出dis1+disn+1·的最小值
值得一提的是这个排序。很神奇,他做了一个后缀的最大,把\(O(k^2)\)优化成了\(O(k)\)
#include <iostream>
#include <cstdio>
#include <cstring>
#include <queue>
#include <algorithm>
using namespace std;
const int Maxn=2*1e5+111;
int dis1[Maxn],disn[Maxn],n,m,k,a[Maxn],cnt,x,y,h[Maxn];
bool vis[Maxn];
struct Edge{
int to,lac;
void insert(int x,int y){
lac=h[x];
to=y;
h[x]=cnt++;
}
}edge[Maxn*2];
void bfs1(){
queue<int> q;
q.push(1);vis[1]=1;dis1[1]=0;
while(!q.empty()){
int fr=q.front();q.pop();
for(int i=h[fr];i!=-1;i=edge[i].lac){
int to=edge[i].to;
if(vis[to]) continue;
dis1[to]=dis1[fr]+1;vis[to]=1;q.push(to);
}
}
}
void bfsn(){
memset(vis,0,sizeof vis);
queue<int> q;
q.push(n);vis[n]=1;disn[n]=0;
while(!q.empty()){
int fr=q.front();q.pop();
for(int i=h[fr];i!=-1;i=edge[i].lac){
int to=edge[i].to;
if(vis[to]) continue;
disn[to]=disn[fr]+1;vis[to]=1;q.push(to);
}
}
}
bool cmp(int a,int b){
return dis1[a]-disn[a]<dis1[b]-disn[b];
}
int main(){
scanf("%d%d%d",&n,&m,&k);
for(int i=1;i<=k;i++)scanf("%d",&a[i]);
memset(h,-1,sizeof h);
for(int i=1;i<=m;i++){
scanf("%d%d",&x,&y);
edge[cnt].insert(x,y);
edge[cnt].insert(y,x);
}
bfs1();
bfsn();
sort(a+1,a+1+k,cmp);
int max1=-1e7,best=0;;
for(int i=k;i>=1;i--){
best=max(best,max1+dis1[a[i]]);
max1=max(max1,disn[a[i]]);
}
printf("%d",min(best+1,dis1[n]));
return 0;
}
然后最后有特判。。。
CF #621 div.2的更多相关文章
- CF #376 (Div. 2) C. dfs
1.CF #376 (Div. 2) C. Socks dfs 2.题意:给袜子上色,使n天左右脚袜子都同样颜色. 3.总结:一开始用链表存图,一直TLE test 6 (1)如果需 ...
- CF #375 (Div. 2) D. bfs
1.CF #375 (Div. 2) D. Lakes in Berland 2.总结:麻烦的bfs,但其实很水.. 3.题意:n*m的陆地与水泽,水泽在边界表示连通海洋.最后要剩k个湖,总要填掉多 ...
- CF #374 (Div. 2) D. 贪心,优先队列或set
1.CF #374 (Div. 2) D. Maxim and Array 2.总结:按绝对值最小贪心下去即可 3.题意:对n个数进行+x或-x的k次操作,要使操作之后的n个数乘积最小. (1)优 ...
- CF #374 (Div. 2) C. Journey dp
1.CF #374 (Div. 2) C. Journey 2.总结:好题,这一道题,WA,MLE,TLE,RE,各种姿势都来了一遍.. 3.题意:有向无环图,找出第1个点到第n个点的一条路径 ...
- CF #371 (Div. 2) C、map标记
1.CF #371 (Div. 2) C. Sonya and Queries map应用,也可用trie 2.总结:一开始直接用数组遍历,果断T了一发 题意:t个数,奇变1,偶变0,然后与问的 ...
- CF #365 (Div. 2) D - Mishka and Interesting sum 离线树状数组
题目链接:CF #365 (Div. 2) D - Mishka and Interesting sum 题意:给出n个数和m个询问,(1 ≤ n, m ≤ 1 000 000) ,问在每个区间里所有 ...
- CF #365 (Div. 2) D - Mishka and Interesting sum 离线树状数组(转)
转载自:http://www.cnblogs.com/icode-girl/p/5744409.html 题目链接:CF #365 (Div. 2) D - Mishka and Interestin ...
- CF#138 div 1 A. Bracket Sequence
[#138 div 1 A. Bracket Sequence] [原题] A. Bracket Sequence time limit per test 2 seconds memory limit ...
- CF 552(div 3) E Two Teams 线段树,模拟链表
题目链接:http://codeforces.com/contest/1154/problem/E 题意:两个人轮流取最大值与旁边k个数,问最后这所有的数分别被谁给取走了 分析:看这道题一点思路都没有 ...
随机推荐
- ios--->特定构造方法NS_DESIGNATED_INITIALIZER
特定构造方法 1> 后面带有NS_DESIGNATED_INITIALIZER的方法,就是特定构造方法 2> 子类如果重写了父类的[特定构造方法],那么必须用super调用父类的[特定构造 ...
- 练习2-13 求N分之一序列前N项和 (15 分)
练习2-13 求N分之一序列前N项和 (15 分) 输入在一行中给出一个正整数N. 输出格式: 在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后6位.题目保证计算结果不超过双精度范 ...
- 关于puremvc的几点思考
软件框架 框架要解决的问题是什么?这个问题感觉不能一概而论,就目前我遇到的项目实际来说主要是要解决以下几个问题 复用 并行开发 跨平台 项目背景:视频监控领域下,C/S & B/S模式的PC客 ...
- 视觉slam十四讲课后习题ch3-7
题目回顾: 设有小萝卜一号和小萝卜二号位于世界坐标系中,小萝卜一号的位姿为:q1=[0.35,0.2,0.3,0.1],t2=[0.3,0.1,0.1]^T (q的第一项为实部.请你把q归一化后在进行 ...
- 详解python的装饰器decorator
装饰器本质上是一个python函数,它可以让其它函数在不需要任何代码改动的情况下增加额外的功能. 装饰器的返回值也是一个函数对象.它经常用于有切面需求的场景,比如:插入日志,性能测试,事务处理,缓存, ...
- [pathlib]内置pathlib库的常用属性和方法
pathlib中的Path类可以创建path路径对象, 属于比os.path更高抽象级别的对象. 官网 from pathlib import Path path = Path(__file__) p ...
- Codeforces_731_C
http://codeforces.com/problemset/problem/731/C 并查集,然后找每个集合里颜色的最大数量,求集合中元素数量-这个最大数量,最后总数相加即答案. #inclu ...
- Kafka系列3:深入理解Kafka消费者
上面两篇聊了Kafka概况和Kafka生产者,包含了Kafka的基本概念.设计原理.设计核心以及生产者的核心原理.本篇单独聊聊Kafka的消费者,包括如下内容: 消费者和消费者组 如何创建消费者 如何 ...
- DRF框架的安装与使用
目录 DRF框架的安装与配置 基于restful接口规范的接口设计 DRF框架的安装与配置 """ 1)安装 >: pip install djangorestfr ...
- 在centos6.3下安装php的Xdebug
首先下载一个xdebug http://www.xdebug.org/docs/ 官网上有windos版本和linux源码版本的,我们下载一个源码包xdebug-2.2.5.tgz 然后进入安装流程 ...