HDU:5670~5764

A题: 是一个3进制计数;

 #include <bits/stdc++.h>

 using namespace std;

 int a[];

 int calc(long long n) {
int i=;
while(n) {
a[i++] = n%;
n/=;
}
return i;
} int main()
{
int t;
cin>>t;
while(t--) {
memset(a,,sizeof());
int m; //长度
long long n;
cin>>m>>n;
int k = calc(n);
for(int i=;i<m-k;i++) {
putchar('R');
}
for(int i=min(k-,m-);i>=;i--) {
if(a[i]==)
putchar('R');
else if(a[i]==)
putchar('G');
else putchar('B');
}
puts("");
}
return ;
}

B题:矩阵操作,可以线段树,有更好的办法,就是现在的某一行是原来的哪一行记录下来;

 #include <bits/stdc++.h>

 using namespace std;

 const int maxn = ;
int maps[maxn][maxn]; int r[maxn]; //当前的第i 行,是原来的r[i]
int c[maxn];
int addr[maxn]; //当前的第i 行,上面加了addr[i]
int addc[maxn]; int main()
{
int t;
scanf("%d",&t);
while(t--) {
memset(addr,,sizeof(addr));
memset(addc,,sizeof(addc)); int n,m;
int q;
scanf("%d%d%d",&n,&m,&q);
for(int i=;i<n;i++)
for(int j=;j<m;j++)
scanf("%d",&maps[i][j]); for(int i=;i<n;i++)
r[i] = i;
for(int i=;i<m;i++)
c[i] = i; int op,x,y;
while(q--) {
scanf("%d%d%d",&op,&x,&y);
if(op==)
{
x--;y--;
swap(r[x],r[y]);
swap(addr[x],addr[y]);
}
if(op==) {
x--;y--;
swap(c[x],c[y]);
swap(addc[x],addc[y]);
}
if(op==) {
x--;
addr[x]+=y;
}
if(op==) {
x--;
addc[x]+=y;
}
} for(int i=;i<n;i++) {
for(int j=;j<m;j++) {
if(j==m-)
printf("%d",maps[r[i]][c[j]]+addr[i]+addc[j]);
else
printf("%d ",maps[r[i]][c[j]]+addr[i]+addc[j]);
}
puts("");
}
}
return ;
}

C题:一个字符串,仅有小写字母,求有多少个子串,至少K个不同的字母;

尺取,最好是hash,map,set可能会超时

 #include <bits/stdc++.h>

 using namespace std;

 const int maxn = +;

 char str[maxn];
int vis[]; int main()
{
int t;
cin>>t;
while(t--) {
int k;
scanf("%s%d",str+,&k);
int n = strlen(str+);
memset(vis,,sizeof(vis));
int r=;
int cnt=;
long long ans = ;
for(int l=;l<=n;l++) {
while(r<n&&cnt<k) {
++r;
if(++vis[str[r]]==)
cnt++;
}
if(cnt>=k)
ans +=n-r+;
if(--vis[str[l]]==)
--cnt;
}
cout<<ans<<endl;
}
return ;
}

D题:  n秒后,回到原点,有多少不同的路径;

枚举向右走了几步;

公式出来了,大组合数用到乘法逆元,求卡特兰数,在CSUFTOJ中有一个出栈序列的问题,i 步有多少种出栈方式;(代码还没写)

BestCoder Round #81 (div.2)的更多相关文章

  1. BestCoder Round #81 (div.2) 1004 String(动态规划)

    题目链接:BestCoder Round #81 (div.2) 1003 String 题意 中文题,上有链接.就不贴了. 思路 枚举起点i,计算能够达到k个不同字母的最小下标j,则此时有子串len ...

  2. BestCoder Round #81 (div.2) 1003 String

    题目地址:http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=691&pid=1003题意:找出一个字符串满足至少 ...

  3. BestCoder Round #81 (div.2)C String

    总体思路好想,就是在找K个不同字母的时候,卡时间. 看了大神代码,发现goto的!!!!998ms #include<cstdio> #include<cstring> #in ...

  4. BestCoder Round #81 (div.2) B Matrix

    B题...水题,记录当前行是由原矩阵哪行变来的. #include<cstdio> #include<cstring> #include<cstdlib> #inc ...

  5. BestCoder Round #81 (div.1)A

    水题...就是n的三进制后m位 #include<cstdio> #include<cstring> #include<cstdlib> #include<i ...

  6. BestCoder Round #81 (div.2)1001

    Machine Accepts: 580 Submissions: 1890 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65 ...

  7. hdoj5671 BestCoder Round #81 (div.2)

    对于交换行.交换列的操作,分别记录当前状态下每一行.每一列是原始数组的哪一行.哪一列即可. 对每一行.每一列加一个数的操作,也可以两个数组分别记录.注意当交换行.列的同时,也要交换增量数组. 输出时通 ...

  8. BestCoder Round #69 (div.2) Baby Ming and Weight lifting(hdu 5610)

    Baby Ming and Weight lifting Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K ( ...

  9. BestCoder Round #68 (div.2) tree(hdu 5606)

    tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submis ...

随机推荐

  1. ActivityGroup和TabActiviy的差异性?

    TabActivity功能比较专一,就是做主界面Activity切换用的,所以定制性方面也就限制了许多,而且修改麻烦,不便于维护.ActivityGroup也是用来管理多个Activity的,但是功能 ...

  2. vsftpd配置文件解析

    对vsftpd配置文件详细解答. 1.默认配置: 1>允许匿名用户和本地用户登陆. anonymous_enable=YES local_enable=YES 2>匿名用户使用的登陆名为f ...

  3. 工作采坑札记:4. Hadoop获取InputSplit文件信息

    1. 场景 基于客户的数据处理需求,客户分发诸多小数据文件,文件每行代表一条记录信息,且每个文件以"类型_yyyyMMdd_批次号"命名.由于同一条记录可能存在于多个文件中,且处于 ...

  4. BNU 20950 ——沉重的货物 —————— · 最短路、最短边最大化」

    沉重的货物 Time Limit: 1000ms Memory Limit: 65536KB 64-bit integer IO format: %lld      Java class name: ...

  5. gcc链接非标准(non-standard)命名库

    标准命名库: -lnamespace 标准链接库以lib开头, 并以so/a结尾. example gcc test.c -o test -L. -lhello 非标准命名库: -l:libname ...

  6. Android开发过程中部分报错解决方法。

    初学Android,最近在使用zxing开发一个条码扫描解析的安卓项目中,遇到以下几个问题.贴出来以供参考. 1.Http请求错误    Android4.0以上要求不能把网络请求的操作放在主线程里操 ...

  7. linux安装git、node、pm2

    一.安装Git 下载:# wget https://www.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz 解压:# tar -zxvf git-2. ...

  8. Git代码merge

    Git代码合并遇到如下问题: <<<<<<< HEAD     client.post(url, secretKey, function (data, res ...

  9. Hibernate课堂笔记

    1.java持久化概述 Java持久化简称(JPA), 即把程序中的临时数据持久保存到数据库中.由于jdbc开发效率低,我们就提出了对象关系映射(ORM)的概率 2.ORM 通过java持久化提供的A ...

  10. 【Linux】查看磁盘空间大小

    Ubuntu 查看磁盘空间大小命令 df -h Df命令是linux系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息, 命令格式: df -hl  显示格式为:  文件系统 容量 已 ...