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

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. Linux文件排序和FASTA文件操作

    文件排序 seq: 产生一系列的数字; man seq查看其具体使用.我们这使用seq产生下游分析所用到的输入文件. # 产生从1到10的数,步长为1 $ seq 1 10 1 2 3 4 5 6 7 ...

  2. if语句,while语句,do whlie语句,循环语句

    总结: 1.定义数组并赋值: var arr=[1,2,3,4]; 2.通过下标访问数组: var str=arr[0]; 3.自定义数组 var arr=new Array(); 4.数组的赋值 a ...

  3. BZOJ1996: [Hnoi2010]chorus 合唱队 (DP)

    就是想水一发 #include <stdio.h> #include <algorithm> #include <iostream> using namespace ...

  4. block相关归纳

    经过今天的Block的学习.上网查询相关文章归纳了一下 一.一个使用Block的好处有: Block可以用在许多不同的环境中,这样可以让代码更加简单,以及减少函数声明的数量,不用实现代理协议. 简单性 ...

  5. Luogu P3110 [USACO14DEC]驮运Piggy Back

    解题思路 看到下面很多人都在说什么遇到了之后要不要背着走,其实根本不需要,同样的我也是跑了三遍$SPFA$,求出了以$1$为起点到个点的$dist$,和以$2$为起点到个点的$dist$,还有以$n$ ...

  6. Python学习-算术运算符,赋值运算符和复合运算符

    算术运算符 常见的算术运算符有 : +     加法运算符 print(1 + 2); // 3 print('1' + '2'); //12 不仅可以进行2个数字的相加,还可以连接2个字符串 -   ...

  7. Oracle 密码文件

    一.密码文件 作用:主要进行DBA权限的身份认证 DBA用户:具有sysdba,sysoper权限的用户被称为dba用户.默认情况下sysdba角色中存在sys用户,sysoper角色中存在syste ...

  8. Haoop Mapreduce 中的FileOutputFormat类

    FileOutputFormat类继承OutputFormat,需要提供所有基于文件的OutputFormat实现的公共功能,主要有以下两点: (1)实现checkOutputSpecs方法 chec ...

  9. 59.关系型与document类型数据模型对比

    现假设有如下两个类: class Department(object): def __init__(self, dept_id, name, desc, employees=[]): self.dep ...

  10. PyCharm开发GUI之PyQt安装

    开发环境 PyCharm 2018.3.3python3.7 1 安装pyqt5 pip install PyQt5-tools 2 配置PyCharm 2.1 配置设计器 其中,program为C: ...