题目链接:

http://codeforces.com/gym/101078

A:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <bits/stdc++.h>
#include <stack>
#include <map> using namespace std; #define For(i,j,n) for(int i=j;i<=n;i++)
#define mst(ss,b) memset(ss,b,sizeof(ss));
#define ll long long;
typedef long long LL; template<class T> void read(T&num) {
char CH; bool F=false;
for(CH=getchar();CH<'0'||CH>'9';F= CH=='-',CH=getchar());
for(num=0;CH>='0'&&CH<='9';num=num*10+CH-'0',CH=getchar());
F && (num=-num);
}
int stk[70], tp;
template<class T> inline void print(T p) {
if(!p) { puts("0"); return; }
while(p) stk[++ tp] = p%10, p/=10;
while(tp) putchar(stk[tp--] + '0');
putchar('\n');
} const LL mod=1e9+7;
const double PI=acos(-1.0);
const LL inf=1e18;
const int N=1e6+2000;
const int maxn=1e5+5;
const double eps=1e-8; int a[maxn],p[maxn];
int main()
{
int t;
read(t);
while(t--)
{
int n;
read(n);
For(i,1,n)
{
read(a[i]);
p[a[i]]=i;
}
int st=0,mmax=0,x;
For(i,1,n)
{
read(x);
mmax=max(mmax,p[x]);
if(i==mmax)
{
printf("%d-%d ",st+1,i);
st=i;
}
}
printf("\n");
}
return 0;
} /*
题意:
给两个[1,n]的排列,现在要给分成几部分,每一部分里面都是数字相同,现在要怎么分; 思路: 水题啦啦;
*/

  

B:

C:

D:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <bits/stdc++.h>
#include <stack>
#include <map> using namespace std; #define For(i,j,n) for(int i=j;i<=n;i++)
#define mst(ss,b) memset(ss,b,sizeof(ss));
#define ll long long;
typedef long long LL; template<class T> void read(T&num) {
char CH; bool F=false;
for(CH=getchar();CH<'0'||CH>'9';F= CH=='-',CH=getchar());
for(num=0;CH>='0'&&CH<='9';num=num*10+CH-'0',CH=getchar());
F && (num=-num);
}
int stk[70], tp;
template<class T> inline void print(T p) {
if(!p) { puts("0"); return; }
while(p) stk[++ tp] = p%10, p/=10;
while(tp) putchar(stk[tp--] + '0');
putchar('\n');
} const LL mod=1e9+7;
const double PI=acos(-1.0);
const LL inf=1e18;
const int N=1e6+2000;
const int maxn=5e3+10;
const double eps=1e-8; int main()
{
int t;
read(t);
while(t--)
{
LL n;
read(n);
if(n==0){cout<<"0\n";continue;}
LL ans=n-n/2;
for(int i=1;i<=3;i++)
{
if((n+i-1)%3==0)
{
LL t=(n+i-1)/3;
if(t%2==0)t++;
ans=ans+(n-t)/2+1;
break;
}
}
print(ans);
}
return 0;
} /*
题意:
每个数m和2*m之间都有一根绳,每个奇数m和3*m+1之间有一根绳,现在要把[1,n]拿走,需要剪断多少根绳; 思路: 这个就是个水题,把2*m>n的减去,把3*m+1>n的剪去就是答案了;
*/

  

E:

F:

G:

H:

I:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <bits/stdc++.h>
#include <stack>
#include <map> using namespace std; #define For(i,j,n) for(int i=j;i<=n;i++)
#define mst(ss,b) memset(ss,b,sizeof(ss));
#define ll long long;
typedef long long LL; template<class T> void read(T&num) {
char CH; bool F=false;
for(CH=getchar();CH<'0'||CH>'9';F= CH=='-',CH=getchar());
for(num=0;CH>='0'&&CH<='9';num=num*10+CH-'0',CH=getchar());
F && (num=-num);
}
int stk[70], tp;
template<class T> inline void print(T p) {
if(!p) { puts("0"); return; }
while(p) stk[++ tp] = p%10, p/=10;
while(tp) putchar(stk[tp--] + '0');
putchar('\n');
} const LL mod=1e9+7;
const double PI=acos(-1.0);
const LL inf=1e18;
const int N=1e6+2000;
const int maxn=1e6+5;
const double eps=1e-8; char s[maxn];
int p,sz;
struct node
{
char ch;
int l,r;
}po[N];
void movele()
{
if(p==0)return ;
p=po[p].l;
}
void moveri()
{
if(po[p].r==0)return ;
p=po[p].r;
}
void insert(char &t)
{
sz++;
po[sz].ch=t;
po[sz].l=p;
po[sz].r=po[p].r;
po[p].r=sz;
if(po[sz].r)po[po[sz].r].l=sz;
p=sz;
}
void dele()
{
if(p==0)return ;
if(po[p].r)
{
int nex=po[p].r;
int pre=po[p].l;
po[nex].l=pre;
po[pre].r=nex;
p=pre;
}
else
{
int pre=po[p].l;
po[pre].r=0;
p=pre;
}
}
void out()
{
p=po[0].r;
while(p)
{
printf("%c",po[p].ch);
p=po[p].r;
}
printf("\n");
}
int main()
{
int t;
read(t);
while(t--)
{
gets(s);
int len=strlen(s);
sz=0;p=sz;
po[0].l=0;po[0].r=0;
for(int i=0;i<len;i++)
{
if(s[i]=='<')movele();
else if(s[i]=='>')moveri();
else if(s[i]=='-')dele();
else insert(s[i]);
}
out();
}
return 0;
} /*
题意:
模拟几项操作,最后输出密码,其中<表示光标左移一位,>表示右移一位,-表示删除一位,其他的字符就表示插入一个字符,
这些操作都是在可以操作的情况下才执行; 思路: 用一个双向链表模拟一下,我不太会写链表,就用结构体代替啦;
*/

  

J:

K:

L:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <bits/stdc++.h>
#include <stack>
#include <map> using namespace std; #define For(i,j,n) for(int i=j;i<=n;i++)
#define mst(ss,b) memset(ss,b,sizeof(ss));
#define ll long long;
typedef long long LL; template<class T> void read(T&num) {
char CH; bool F=false;
for(CH=getchar();CH<'0'||CH>'9';F= CH=='-',CH=getchar());
for(num=0;CH>='0'&&CH<='9';num=num*10+CH-'0',CH=getchar());
F && (num=-num);
}
int stk[70], tp;
template<class T> inline void print(T p) {
if(!p) { puts("0"); return; }
while(p) stk[++ tp] = p%10, p/=10;
while(tp) putchar(stk[tp--] + '0');
putchar('\n');
} const LL mod=1e9+7;
const double PI=acos(-1.0);
const LL inf=1e18;
const int N=1e6+2000;
const int maxn=5e3+10;
const double eps=1e-8; char s[maxn];
int main()
{
scanf("%s",s);
int len=strlen(s);
double ans=0;
for(int i=len-1;i>=0;i--)
{
if(s[i]=='0')
{
for(int j=0;j<=i;j++)
{
if(s[j]=='1')
{
swap(s[i],s[j]);
ans=ans+sqrt(i-j);
break;
}
}
}
}
printf("%.12lf\n",ans);
return 0;
} /*
题意:
给出一个01串,让把0都换到前边来,每次交换位置i和j的花费为sqrt(i-j);问最小的花费是多少; 思路:
假设现在位置i<j<x<y,i,j为1,x,y为1,sqrt(x-j)+sqrt(y-i)<sqrt(x-i)+sqrt(y-j),
这个大小关系可以通过平方啊比较出来,然后就是最外面的10一块交换花费最小,所以就这样贪心就好;
*/

  

  

codeforces gym-101078的更多相关文章

  1. Codeforces Gym 101252D&&floyd判圈算法学习笔记

    一句话题意:x0=1,xi+1=(Axi+xi%B)%C,如果x序列中存在最早的两个相同的元素,输出第二次出现的位置,若在2e7内无解则输出-1. 题解:都不到100天就AFO了才来学这floyd判圈 ...

  2. Codeforces Gym 101190M Mole Tunnels - 费用流

    题目传送门 传送门 题目大意 $m$只鼹鼠有$n$个巢穴,$n - 1$条长度为$1$的通道将它们连通且第$i(i > 1)$个巢穴与第$\left\lfloor \frac{i}{2}\rig ...

  3. Codeforces Gym 101623A - 动态规划

    题目传送门 传送门 题目大意 给定一个长度为$n$的序列,要求划分成最少的段数,然后将这些段排序使得新序列单调不减. 考虑将相邻的相等的数缩成一个数. 假设没有分成了$n$段,考虑最少能够减少多少划分 ...

  4. 【Codeforces Gym 100725K】Key Insertion

    Codeforces Gym 100725K 题意:给定一个初始全0的序列,然后给\(n\)个查询,每一次调用\(Insert(L_i,i)\),其中\(Insert(L,K)\)表示在第L位插入K, ...

  5. Codeforces gym 101343 J.Husam and the Broken Present 2【状压dp】

     2017 JUST Programming Contest 2.0 题目链接:Codeforces gym 101343 J.Husam and the Broken Present 2 J. Hu ...

  6. codeforces gym 100553I

    codeforces gym 100553I solution 令a[i]表示位置i的船的编号 研究可以发现,应是从中间开始,往两边跳.... 于是就是一个点往两边的最长下降子序列之和减一 魔改树状数 ...

  7. CodeForces Gym 100213F Counterfeit Money

    CodeForces Gym题目页面传送门 有\(1\)个\(n1\times m1\)的字符矩阵\(a\)和\(1\)个\(n2\times m2\)的字符矩阵\(b\),求\(a,b\)的最大公共 ...

  8. Codeforces GYM 100876 J - Buying roads 题解

    Codeforces GYM 100876 J - Buying roads 题解 才不是因为有了图床来测试一下呢,哼( 题意 给你\(N\)个点,\(M\)条带权边的无向图,选出\(K\)条边,使得 ...

  9. codeforces Gym 100187J J. Deck Shuffling dfs

    J. Deck Shuffling Time Limit: 2   Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100187/pro ...

  10. Codeforces Gym 100187K K. Perpetuum Mobile 构造

    K. Perpetuum Mobile Time Limit: 2 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100187/pro ...

随机推荐

  1. Hibernate+maven+mysql

    最近在研究hibernate,想建立一个简单的Hibernate+maven+mysql工程,网上找了一大堆的示例,要么看不懂结构,要么就是缺少必要文件.总之都没有成功,结果无意在一个外文网上找了一个 ...

  2. Hibernate框架之注解的配置

    在hibernate中,通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,熟话说,萝卜青菜,可有所爱,每个人都有自己喜欢的配置方式,我在试了这两种方式 ...

  3. Angularjs,WebAPI 搭建一个简易权限管理系统 —— 基本功能演示(二)

    目录 前言 Angularjs名词与概念 Angularjs 基本功能演示 系统业务与实现 WebAPI项目主体结构 Angularjs 前端主体结构 基本功能演示(二) 非常抱歉这个月实在太忙,一直 ...

  4. ThoughtWorks.QRCode生成二维码

    首先引用需要的dll,此处使用的是ThoughtWorks.QRCode.dll,网上可以找到对应的,此处也有一份,点击下载 http://files.cnblogs.com/files/ives/T ...

  5. Linux守护进程的编程实现(转)

    http://blog.csdn.net/zg_hover/article/details/2553321 http://blog.csdn.net/kongdefei5000/article/det ...

  6. jquery常用选择器

    1.数字性过滤 $("tr:first")               //选择所有tr元素的第一个 $("tr:last")                / ...

  7. sublimeText插件推荐

    工欲善其事必先利其器.sublimeText是前端开发工程师的一把利器,它的优点包含: 随时保留文件的修改 Goto Anything,智能搜索; 简单全面的插件体系; 代码地图; 快速启动 ... ...

  8. CSS后代选择器,子选择器和相邻兄弟选择器

    平时在代码练习中,经常用到后代选择器,子选择器也会用到,这里做个总结: 1,后代选择器和子选择器区别: ①写法不一样:后代选择器的标识为:空格 如:ul li{width:150px;} [ul和li ...

  9. idoc 和 bapi 和 rfc 之间的区别

        se37 写出来的叫function,其中可以远程调用的叫rfc,remote-enabled function,abap语法和输入输出参数就会有一些限制.bapi是sap做好的实现特定业务操 ...

  10. 实验12:Problem H: 整型数组运算符重载

    Home Web Board ProblemSet Standing Status Statistics   Problem H: 整型数组运算符重载 Problem H: 整型数组运算符重载 Tim ...