吐槽:只能说是上分好场,可惜没打,唉

A:Beru-taxi (水题,取最小值)

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <string>
#include <cmath>
#include <stdlib.h>
using namespace std;
typedef long long LL;
int main(){
double x,y,ret=1e9,a,b,v;
int n;
scanf("%lf%lf%d",&x,&y,&n);
for(int i=;i<n;++i){
scanf("%lf%lf%lf",&a,&b,&v);
ret=min(ret,sqrt((x-a)*(x-a)+(y-b)*(y-b))/v);
}
printf("%.10f\n",ret);
return ;
}

B: Interesting drink(二分下)

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <string>
#include <cmath>
#include <stdlib.h>
using namespace std;
typedef long long LL;
const int N = 1e5+;
int a[N],n,m,q;
int main(){
scanf("%d",&n);
for(int i=;i<=n;++i)scanf("%d",&a[i]);
sort(a+,a++n);
scanf("%d",&q);
while(q--){
scanf("%d",&m);
printf("%d\n",upper_bound(a+,a++n,m)-a-);
}
return ;
}

C:Hard problem(简单的O(n)dp,dp[i][0/1]代表不反转或者反转,随便写写)

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <string>
#include <cmath>
#include <stdlib.h>
using namespace std;
typedef long long LL;
const int N = 1e5+;
const int INF = 0x3f3f3f3f;
LL dp[N][];
int c[N],n;
string a[N],b[N];
int main(){
scanf("%d",&n);
for(int i=;i<=n;++i)scanf("%d",&c[i]);
for(int i=;i<=n;++i){
cin>>a[i];b[i]=a[i];
reverse(b[i].begin(),b[i].end());
}
memset(dp,-,sizeof(dp));
dp[][]=c[];dp[][]=;
for(int i=;i<=n;++i){
if(a[i]>=a[i-]&&dp[i-][]!=-)
dp[i][]=dp[i-][];
if(a[i]>=b[i-]&&dp[i-][]!=-){
if(dp[i][]==-)dp[i][]=dp[i-][];
else dp[i][]=min(dp[i][],dp[i-][]);
}
if(b[i]>=a[i-]&&dp[i-][]!=-)
dp[i][]=dp[i-][]+c[i];
if(b[i]>=b[i-]&&dp[i-][]!=-){
if(dp[i][]==-)dp[i][]=dp[i-][]+c[i];
else dp[i][]=min(dp[i][],dp[i-][]+c[i]);
}
if(dp[i][]==-&&dp[i][]==-){
printf("-1\n");return ;
}
}
int i=n;
if(dp[i][]!=-&&dp[i][]==-)printf("%I64d\n",dp[i][]);
else if(dp[i][]!=-&&dp[i][]==-)printf("%I64d\n",dp[i][]);
else printf("%I64d\n",min(dp[i][],dp[i][]));
return ;
}

D:Vasiliy's Multiset(老题了,01字典树贪心)

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <string>
#include <cmath>
#include <stdlib.h>
using namespace std;
typedef long long LL;
const int N = (2e5)*;
const int INF = 0x3f3f3f3f;
int ch[N][],cnt[N],tot,n;
int newnode(){
++tot;memset(ch[tot],-,sizeof(ch[tot]));return tot;
}
void add(int x,int t){
int now=;
for(int i=;i>=;--i){
int nx=(x&(<<i))?:;
if(ch[now][nx]==-)ch[now][nx]=newnode();
now=ch[now][nx];cnt[now]+=t;
}
}
int ask(int x){
int now=,ret=;
for(int i=;i>=;--i){
int nx=(x&(<<i))?:;
if(ch[now][nx^]!=-&&cnt[ch[now][nx^]]){
now=ch[now][nx^];ret+=(<<i);
}
else now=ch[now][nx];
}
return ret;
}
char op[];
int main(){
tot=-;newnode();add(,);
scanf("%d",&n);
while(n--){
int x;scanf("%s%d",op,&x);
if(op[]=='+')add(x,);
else if(op[]=='-')add(x,-);
else printf("%d\n",ask(x));
}
return ;
}

E:Working routine(十字链表暴力,如果不会的话,可以去看看dance link的实现)

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <string>
#include <cmath>
#include <stdlib.h>
using namespace std;
typedef long long LL;
const int N = 1e3+;
struct Node{
int u,d,l,r,v;
}p[N*N];
int cnt,n,m,q,mp[N][N];
int main(){
cnt=-;
scanf("%d%d%d",&n,&m,&q);
for(int i=;i<=n;++i){
mp[i][]=++cnt;
}
for(int i=;i<=m;++i)mp[][i]=++cnt;
for(int i=;i<=n;++i){
for(int j=;j<=m;++j){
++cnt;scanf("%d",&p[cnt].v);
mp[i][j]=cnt;
}
}
for(int i=;i<=n;++i){
for(int j=;j<=m;++j){
int id=mp[i][j];
p[id].l=mp[i][j-];
p[id].r=mp[i][(j+)%(m+)];
p[id].u=mp[i-][j];
p[id].d=mp[(i+)%(n+)][j];
}
}
for(int i=;i<=n;++i){
p[mp[i][]].l=mp[i][m];
p[mp[i][]].r=mp[i][];
}
for(int j=;j<=m;++j){
p[mp[][j]].u=mp[n][j];
p[mp[][j]].d=mp[][j];
}
while(q--){
int x1,y1,x2,y2,h,w;
scanf("%d%d%d%d%d%d",&x1,&y1,&x2,&y2,&h,&w);
int now1=mp[x1][],now2=mp[x2][],k1,k2;
for(int i=;i<=y1;++i)now1=p[now1].r;
for(int i=;i<=y2;++i)now2=p[now2].r;
k1=now1,k2=now2;
for(int i=;i<=w;++i){
swap(p[p[k1].u].d,p[p[k2].u].d);
swap(p[k1].u,p[k2].u);
if(i==w)break;
k1=p[k1].r;k2=p[k2].r;
}
for(int i=;i<=h;++i){
swap(p[p[now1].l].r,p[p[now2].l].r);
swap(p[now1].l,p[now2].l);
swap(p[p[k1].r].l,p[p[k2].r].l);
swap(p[k1].r,p[k2].r);
if(i==h)break;
now1=p[now1].d;now2=p[now2].d;
k1=p[k1].d;k2=p[k2].d;
}
for(int i=;i<=w;++i){
swap(p[p[now1].d].u,p[p[now2].d].u);
swap(p[now1].d,p[now2].d);
now1=p[now1].r;now2=p[now2].r;
}
}
for(int i=;i<=n;++i){
int id=p[mp[i][]].r;
for(int j=;j<m;++j){
printf("%d ",p[id].v);
id=p[id].r;
}
printf("%d\n",p[id].v);
}
return ;
}

Codeforces Round #367 (Div. 2) 套题的更多相关文章

  1. Codeforces Round #579 (Div. 3) 套题 题解

    A. Circle of Students      题目:https://codeforces.com/contest/1203/problem/A 题意:一堆人坐成一个环,问能否按逆时针或者顺时针 ...

  2. Codeforces Round #367 (Div. 2)---水题 | dp | 01字典树

    A.Beru-taxi 水题:有一个人站在(sx,sy)的位置,有n辆出租车,正向这个人匀速赶来,每个出租车的位置是(xi, yi) 速度是 Vi;求人最少需要等的时间: 单间循环即可: #inclu ...

  3. Codeforces Round #361 (Div. 2) 套题

    A - Mike and Cellphone 问有没有多解,每个点按照给出的序列用向量法跑一遍 #include<cstdio> #include<cstring> #incl ...

  4. Codeforces Round #369 (Div. 2) 套题

    A:模拟水题不说 #include <iostream> #include <string.h> #include <algorithm> #include < ...

  5. Codeforces Round #367 (Div. 2) A. Beru-taxi (水题)

    Beru-taxi 题目链接: http://codeforces.com/contest/706/problem/A Description Vasiliy lives at point (a, b ...

  6. Codeforces Round #367 (Div. 2) C. Hard problem

    题目链接:Codeforces Round #367 (Div. 2) C. Hard problem 题意: 给你一些字符串,字符串可以倒置,如果要倒置,就会消耗vi的能量,问你花最少的能量将这些字 ...

  7. Codeforces Round #612 (Div. 2) 前四题题解

    这场比赛的出题人挺有意思,全部magic成了青色. 还有题目中的图片特别有趣. 晚上没打,开virtual contest打的,就会前三道,我太菜了. 最后看着题解补了第四道. 比赛传送门 A. An ...

  8. Codeforces Round #378 (Div. 2) D题(data structure)解题报告

    题目地址 先简单的总结一下这次CF,前两道题非常的水,可是第一题又是因为自己想的不够周到而被Hack了一次(或许也应该感谢这个hack我的人,使我没有最后在赛后测试中WA).做到C题时看到题目情况非常 ...

  9. Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset (0/1-Trie树)

    Vasiliy's Multiset 题目链接: http://codeforces.com/contest/706/problem/D Description Author has gone out ...

随机推荐

  1. 表格 —— 一个单元格插入多个tags

    <st #st [columns]="columns" [data]="data" [bordered]='true'> <ng-templa ...

  2. 11Oracle Database 视图

    Oracle Database 视图 视图语法 create [or replace] view <名字> as <select 语句> 视图用于简化查询,视图中实际存放的是一 ...

  3. trie字典树模板浅析

    什么是trie? 百度百科 又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种.典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计.它的 ...

  4. idea+maven配置log4j详解

    经过上一篇的讲解,知道了实现log4j打印日志依赖的jar包共3个,在pom.xml中加入相关依赖: <!-- 添加log4j日志相关jar包:共3个jar--> <!-- http ...

  5. PKI相关知识简述

    1. 公钥泄露导致中间人攻击 有A.B.C三个人,如果C把自己的公钥提供给了AB双方,C伪装成B,让A认为C就B,这样A就把自己的公钥发送给C,C再伪装成A,让B认为C就A,B就把自己的公钥也发送给了 ...

  6. streamwise veloicty along the jet axis using Matlab/Octave

    input file: v.csv scpirts as follows filename='v.csv'; % assign file to a variable m=csvread(filenam ...

  7. DemoKit编译过程错误

    1.编译出错: 2.原因(将代码注释):

  8. poj 3744 Scout YYF I(递推求期望)

    poj 3744 Scout YYF I(递推求期望) 题链 题意:给出n个坑,一个人可能以p的概率一步一步地走,或者以1-p的概率跳过前面一步,问这个人安全通过的概率 解法: 递推式: 对于每个坑, ...

  9. maven profile多环境自动切换配置,配置分离,排除文件

    痛点: 在java开发的过程中,我们经常要面对各种各样的环境,比如开发环境,测试环境,正式环境,而这些环境对项目的需求也不相同. 在此之前,我们往往需要手动去修改相对应的配置文件然后打成war,才能部 ...

  10. Mongodb学习总结(2)——MongoDB与MySQL区别及其使用场景对比

    对于只有SQL背景的人来说,想要深入研究NoSQL似乎是一个艰巨的任务,MySQL与MongoDB都是开源常用数据库,但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数 ...