那天打cf前无聊练手

T1.Why Did the Cow Cross the Road

题目大意:N*N的矩阵,从左上角走到右下角,走一步消耗T,每走3步消耗当前所在位置上的权值,求最小消耗

思路:好像很傻逼但我不会做,写BFS写着写着写成SPFA,管他呢,过了就行(大致就是每个点拆成三个,就能知道什么时候要加上额外的权值)

#include<cstdio>
#include<algorithm>
using namespace std;
char B[<<],*S=B,C;int X;
inline int read()
{
while((C=*S++)<''||C>'');
for(X=C-'';(C=*S++)>=''&&C<='';)X=X*+C-'';
return X;
}
#define MN 100
#define MQ 10000000
const int o[][]={{,},{,-},{,},{-,}};
int a[MN+][MN+],qx[MQ],qy[MQ],qt[MQ],qn,f[MN+][MN+][];
int main()
{
freopen("visitfj.in","r",stdin);
freopen("visitfj.out","w",stdout);
fread(B,,<<,stdin);
int n,t,i,j,x,y,p,w;
n=read();t=read();
for(i=;i<=n;++i)for(j=;j<=n;++j)a[i][j]=read();
for(f[][][]=qx[]=qy[]=,i=;i<=qn;++i)for(j=;j<;++j)
{
x=qx[i]+o[j][];y=qy[i]+o[j][];w=f[qx[i]][qy[i]][qt[i]]+t;
if((p=qt[i]+)>)p=,w+=a[x][y];
if(!x||x>n||!y||y>n)continue;
if(f[x][y][p]&&w>=f[x][y][p])continue;
f[x][y][p]=w;qx[++qn]=x;qy[qn]=y;qt[qn]=p;
}
printf("%d",min(f[n][n][],min(f[n][n][],f[n][n][]))-);
}

T2.Why Did the Cow Cross the Road II

参见我写的铂金组题解T2

http://www.cnblogs.com/ditoly/p/6404238.html

T3.Why Did the Cow Cross the Road III

题目大意:给定长度为2N的序列,1~N各处现过2次,i第一次出现位置记为ai,第二次记为bi,求满足ai<aj<bi<bj的对数。

思路:树状数组维护,从左到右扫一遍,第一次出现就在对应位置加1,第二次出现统计答案并把第一次出现的那个位置减1。

#include<cstdio>
#include<iostream>
using namespace std;
char B[<<],*S=B,C;int X;
inline int read()
{
while((C=*S++)<''||C>'');
for(X=C-'';(C=*S++)>=''&&C<='';)X=(X<<)+(X<<)+C-'';
return X;
}
#define MN 100000
#define lb(x) (x&-x)
int s[MN+],a[MN+];
void inc(int x,int z){for(;x<=MN;x+=lb(x))s[x]+=z;}
int sum(int x){int r=;for(;x;x-=lb(x))r+=s[x];return r;}
int main()
{
freopen("circlecross.in","r",stdin);
freopen("circlecross.out","w",stdout);
fread(B,,<<,stdin);
int n=read()<<,i,x;long long ans=;
for(i=;i<=n;++i)
if(a[x=read()])ans+=sum(i)-sum(a[x]),inc(a[x],-);
else inc(a[x]=i,);
cout<<ans;
}

USACO 2017 February Gold的更多相关文章

  1. [USACO 2017 Dec Gold] Tutorial

    Link: USACO 2017 Dec Gold 传送门 A: 为了保证复杂度明显是从终结点往回退 结果一开始全在想优化建边$dfs$……其实可以不用建边直接$multiset$找可行边跑$bfs$ ...

  2. USACO 2017 February Platinum

    第二次参加USACO 本来打算2016-2017全勤的 January的好像忘记打了 听群里有人讨论才想起来铂金组三题很有意思,都是两个排列的交叉对问题 我最后得分889/1000(真的菜) T1.W ...

  3. USACO 2017 FEB Gold visitfj 最短路

    题意 有一幅n*n的方格图,n <= 100,每个点上有一个值.从(1,1)出发,走到(n,n),只能走四联通.每走一步花费t,每走三步需要花费走完三步后到达格子的值.求最小花费的值. 拆点,d ...

  4. [USACO 2017 Open Gold] Tutorial

    Link: 传送门 A: 由于每个颜色只染色一次就确定了所有要染色的区间 要求染色的次数其实就是求区间最多嵌套多少层,如果有区间相交则无解 以上操作明显可以将左端点排序后用栈来维护 #include ...

  5. [USACO 2017 Feb Gold] Tutorial

    Link: 传送门 A: 分层图最短路(其实就是最短路转移时多记录一维的数据 #include <bits/stdc++.h> using namespace std; #define X ...

  6. [USACO 2017 Jan Gold] Tutorial

    Link: 传送门 A: 按值大小插入后用树状数组统计两边个数 #include <bits/stdc++.h> using namespace std; #define X first ...

  7. [Bzoj3940] [AC自动机,USACO 2015 February Gold] Censor [AC自动机模板题]

    AC自动机模板题(膜jcvb代码) #include <iostream> #include <algorithm> #include <cstdio> #incl ...

  8. POJ1944 Fiber Communications (USACO 2002 February)

    Fiber Communications 总时间限制:  1000ms 内存限制:  65536kB 描述 Farmer John wants to connect his N (1 <= N ...

  9. [USACO 2018 Feb Gold] Tutorial

    Link: USACO 2018 Feb Gold 传送门 A: $dp[i][j][k]$表示前$i$个中有$j$个0且末位为$k$的最优解 状态数$O(n^3)$ #include <bit ...

随机推荐

  1. PTA题目的處理(四)

    题目7-3 求交错序列前N项和 1.实验代码 #include <stdio.h> //#include <stdlib.h> int main() { ,N; double ...

  2. logging日志

    import logging logging.basicConfig(filename='log.log', format='%(asctime)s - %(name)s - %(levelname) ...

  3. 从源码角度看LinkedList一些基本操作(jdk1.7)

    介绍 LinkedList是一个双向链表,就像下图展示那样,每个节点有个指向上个元素和一个指向下个元素的指针. 接下来我会对我们经常使用的方法进行介绍,代码如下 @Test public void t ...

  4. .Net Core SignalR 实时推送信息

    以前一直没用成功过SignalR(.net asp),最近几天又参考了对应的文档,最终调成功啦. 开始之前,应该注意: 一定要.Net Core 2.1.0以上的SDK. VS2017 15.6以上的 ...

  5. zuul入门(5)zuul 处理异常

    Object accessToken = request.getParameter("accessToken"); if(accessToken==null) { // 设置zuu ...

  6. gradle入门(1-3)使用gradle开发一个发布版本

    需求描述 1.使用Maven central仓库.2.使用Log4j写入日志.3.包含单元测试,保证正确的信息返回,单元测试必须使用JUnit编写.4.创建一个可执行的Jar文件. 我们来看一下怎样实 ...

  7. DevExpress控件的一些快捷操作

    用的DevExpress控件时,有一些操作并不太方便,根据我自己需要的封装了一些控件的事件,调用的时候直接绑定控件的事件就可以了 例如: this.ComboBoxEdit.KeyDown += Ct ...

  8. Apache命令

    参考于:http://www.jinbuguo.com/apache/menu22/programs/apxs.html 安装httpd-devel才有apxs

  9. java专业术语

    java的(PO,VO,TO,BO,DAO,POJO)解释 PO(persistant object) 持久对象 在o/r映射的时候出现的概念,如果没有o/r映射,没有这个概念存在了.通常对应数据模型 ...

  10. intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

    需求:第三方提供了http api接口,我们需要将其数据全部取回来,存放到本地Mysql数据库. 开发工具是intelj idea,准备基于maven创建聚合项目,util作为工具包,单独作为一个工程 ...