2013暑假江西联合训练赛 -- by jxust_acm 解题报告
第6题是利用周期性求解,
第7题是 (总的序列长度-最长的满足要求的序列长度)
第8题是 设定起点,可以找到最早出现的不满足条件,然后后面都是不满足的,利用队列求解这个过程
大神给的简单,精炼的题解。
1. 消除之王
数据量为4*4,所以直接暴力dfs的层数不会超过8层,也就是dfs的复杂度为8!,然后加上一些模拟掉落的操作,总的复杂度也不会大。
2. NC
大数开根求整数部分。 网上大神有直接的模板
附模板一份:
#include <stdio.h>
#include <string.h>
int l;int work(int o,char *O,
int I) {char c, *D=O ;if(o>0){
for(l=0;D[l ];D[l
++]-=10){D [l++]-=120;D[l]-=
110;while (!work(0,O,l))D[l]
+= 20; putchar((D[l]+1032)
/20 ) ;}putchar(10);}else{
c=o+ (D[I]+82)%10-(I>l/2)*
(D[I-l+I]+72)/10-9;D[I]+=I<0?0
:!(o=work(c/10,O,I-1))*((c+999
)%10-(D[I]+92)%10);}return o;}
int main(){char s[3000];while(
scanf("%s",s+1)!=EOF){s[0]='0';
if(strlen(s)%2 == 1)work(2,s+1
,0);else work(2,s,0);}}//ubuntu
然后这题时限给的很松,用大数二分的方法也可以解决。如果要模拟大数操作,那么要注意优化问题。
3.找回文
比较基础的一道题目,解决的方法很多,可以用manacher,kmp,或者扩展kmp。如果搞懂了这几个算法的性质,那么稍加改动就可以解决这个问题。
4.二进制求和
树状数组,线段树都可以解决,不过注意乘2操作是没有实际意义的。
5. 开学了
用最小费用最大流可以解决。
建图的方法是:
首先建立一个源点s和一个汇点t。
然后从源点到每个作业i都添加一条容量为1,费用为-Ai的边
然后对于每个Bij都建立一条从i到n+j容量为1,费用为bij的边
对于每个老师都建立一条从n+j(j为老师的标号)到t容量为k,费用为0的边
因为作业可做可不做,所以每个作业i都添加一条从i到t容量为1,费用为0的边
最后直接用最小费用最大流模板即可。
比赛已重挂。要代码,或数据的可以吼一声。 举办一场比赛不容易,有错误或者遗漏敬请大家原谅。
还有三题等会继续更新!
2013暑假江西联合训练赛 -- by jxust_acm 解题报告的更多相关文章
- HDU 4869 Turn the pokers (2014多校联合训练第一场1009) 解题报告(维护区间 + 组合数)
Turn the pokers Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- 模拟赛T2 交换 解题报告
模拟赛T2 交换 解题报告 题目大意: 给定一个序列和若干个区间,每次从区间中选择两个数修改使字典序最小. \(n,m\) 同阶 \(10^6\) 2.1 算法 1 按照题意模拟,枚举交换位置并比较. ...
- 2013/7/16 HNU_训练赛4
CF328B Sheldon and Ice Pieces 题意:给定一个数字序列,问后面的数字元素能够组成最多的组数. 分析:把2和5,6和9看作是一个元素,然后求出一个最小的组数就可以了. #in ...
- 2013/7/17 HNU_训练赛5
sgu 542 Gena vs Petya sgu 543 Cafe 题意:有N组人需要被分配到某些固定了人数的桌子上,其中ai表示第i组有多少个人,安排作为需要符合如下安排:某一组的人员不能够单独在 ...
- 2014 多校联合训练赛6 Fighting the Landlords
本场比赛的三个水题之一,题意是两个玩家每人都持有一手牌,问第一个玩家是否有一种出牌方法使得在第一回和对方无牌可出.直接模拟即可,注意一次出完的情况,一开始没主意,wa了一发. #include< ...
- 浙南联合训练赛 H - The number of positions
Petr stands in line of n people, but he doesn't know exactly which position he occupies. He can say ...
- 浙南联合训练赛 D - Broken Clock
You are given a broken clock. You know, that it is supposed to show time in 12- or 24-hours HH:MM fo ...
- 浙南联合训练赛 B-Laptops
One day Dima and Alex had an argument about the price and quality of laptops. Dima thinks that the m ...
- hdu 5381 The sum of gcd 2015多校联合训练赛#8莫队算法
The sum of gcd Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) T ...
随机推荐
- Ansible远程执行脚本示例
首先创建一个shell脚本 cat /tmp/df.sh #!/bin/bash df -h|grep vda|awk '{print $5}' 然后把该脚本分发到各个机器上 ansible comp ...
- font-size<12 chrome不支持解决
今天,群里有人问道font-size<12 chrome不支持的问题.说实话,这个我一直都没留意过,正好借个机会给自己补习一下. 自己亲自试过,确实如此,当font-size<12 chr ...
- linux系统常用命令 -设置文件夹读写权限
设置文件夹的读写权限: sudo chmod -R 777 /data 权限码描述 sudo chmod 600 ××× (只有所有者有读和写的权限)sudo chmod 644 ××× (所有者有读 ...
- java 虚函数
猜猜这里的代码输出的结果是多少? package test; public class ConstructorExample { static class Foo { int i; Foo() { i ...
- LinkedList的一种错误使用方法
近期在做图像处理的时候.发现某一段代码很的慢.慢得让人无法接受.基本的代码是顺序訪问一个LinkedList的元素,效果是随着index的变大,速度越来越慢,list的元素个数在百万以上.找到原因,分 ...
- git问题:git提交的时候总是提示key加载失败,总是需要手工将key加到Pageant中
问题描述: 重装过一次系统,在重装之前git+tortoisegit配合很好,提交的时候都能自动加载ppk,但是重装系统后,也重新生成pulic key上传到了服务器,但是每次提交的时候都提示key加 ...
- memcache操作实例
实例一: <?php //使用memcache类来操作 $mm = new Memcache(); $mm->addServer("192.168.70.114",11 ...
- void *指针的加减运算
1.手工写了一个程序验证void *指针加减运算移动几个字节: //本程序验证空类型指针减1移动几个字节 #include <stdio.h> int main(int argc, cha ...
- FPGA开发流程1(详述每一环节的物理含义和实现目标)
要知道,要把一件事情做好,不管是做哪们技术还是办什么手续,明白这个事情的流程非常关键,它决定了这件事情的顺利进行与否.同样,我们学习FPGA开发数字系统这个技术,先撇开使用这个技术的基础编程语言的具体 ...
- 使用7za压缩zip包的命令,当中屏蔽部分文件夹内容
7za.exe a -r "D:\paages\prduct\produtConfig.zip" "E:/tm\packaes\poduct" -xr!doc ...