B.Cuckoo for Hashing

模拟题。

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <string>
#include <vector>
using namespace std;
#define N 50007 int a[],b[]; int main()
{
int n1,n2,m,i;
int x,fx,tx;
int tmp,tmp2;
int cs = ;
while(scanf("%d%d%d",&n1,&n2,&m)!=EOF && (n1||n2||m))
{
memset(a,-,sizeof(a));
memset(b,-,sizeof(b));
while(m--)
{
scanf("%d",&x);
fx = x%n1;
tx = ;
if(a[fx] == -)
{
a[fx] = x;
continue;
}
tmp2 = x;
while(a[fx] != -)
{
tmp = a[fx];
a[fx] = tmp2;
tx = tmp%n2;
if(b[tx] != -)
{
tmp2 = b[tx];
b[tx] = tmp;
fx = tmp2%n1;
}
else
{
b[tx] = tmp;
break;
}
}
if(a[fx] == -)
a[fx] = tmp2;
}
printf("Case %d:\n",cs++);
int flag = ;
//printf("Table 1\n");
for(i=;i<n1;i++)
{
if(a[i] != -)
{
flag = ;
break;
}
}
if(flag)
{
printf("Table 1\n");
for(i=;i<n1;i++)
{
if(a[i] != -)
printf("%d:%d\n",i,a[i]);
}
}
flag = ;
for(i=;i<n2;i++)
{
if(b[i] != -)
{
flag = ;
break;
}
}
if(flag)
{
printf("Table 2\n");
for(i=;i<n2;i++)
{
if(b[i] != -)
printf("%d:%d\n",i,b[i]);
}
}
}
return ;
}

C.Playing Fair with Cryptography

模拟题,注意细节就好。遇到J的情况要及时跳走。

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <string>
using namespace std;
#define N 50007 char mp[][];
char key[],text[];
int vis[]; string RUN(string ss)
{
int i,j;
int a,b;
int c,d;
string ans = "";
for(i=;i<;i++)
{
for(j=;j<;j++)
{
if(mp[i][j] == ss[])
a = i,b = j;
if(mp[i][j] == ss[])
c = i,d = j;
}
}
if(a == c)
{
int newb = (b+)%;
ans += mp[a][newb];
int newd = (d+)%;
ans += mp[a][newd];
return ans;
}
else if(b == d)
{
int newa = (a+)%;
ans += mp[newa][b];
int newc = (c+)%;
ans += mp[newc][b];
return ans;
}
else
{
int newb = d;
int newd = b;
ans += mp[a][newb];
ans += mp[c][newd];
return ans;
}
} int main()
{
int t,i,cs = ,j,k;
int x,y;
scanf("%d",&t);
getchar();
while(t--)
{
gets(key);
gets(text);
int len1 = strlen(text);
int len2 = strlen(key);
memset(vis,,sizeof(vis));
k = ;
for(i=;i<len2;i++)
{
char ch = key[i];
if((ch >= 'A' && ch <= 'Z'))
{
if(vis[ch-'A'])
continue;
vis[ch-'A'] = ;
mp[k/][k%] = ch;
k++;
}
else if(ch >= 'a' && ch <= 'z')
{
ch -= ;
if(vis[ch-'A'])
continue;
vis[ch-'A'] = ;
mp[k/][k%] = ch;
k++;
}
}
for(char chh = 'A';chh<='Z';chh++)
{
if(chh == 'J')
continue;
if(!vis[chh-'A'])
{
mp[k/][k%] = chh;
k++;
}
}
//alpha table established
char ss[];
k = ;
for(i=;i<len1;i++)
{
if(text[i] >= 'A' && text[i] <='Z')
ss[k++] = text[i];
else if(text[i] >= 'a' && text[i] <= 'z')
ss[k++] = text[i]-;
}
ss[k] = '\0';
printf("Case %d: ",cs++);
int nowch = ;
char nowchar;
string cy = "";
for(i=;i<k-;i+=)
{
if(nowch == )
nowch++,nowch%=;
if(ss[i] == ss[i+])
{
if(ss[i] == (nowch%) + 'A')
{
nowchar = (++nowch)% + 'A';
if(nowchar == 'J')
nowch++,nowchar = 'K';
}
nowchar = (nowch%) + 'A';
if(nowchar == 'J')
nowch++,nowchar = 'K';
cy = "";
cy += ss[i];
cy += nowchar;
cout<<RUN(cy);
nowch = (nowch+)%;
i -= ;
}
else
{
cy = "";
cy += ss[i];
cy += ss[i+];
cout<<RUN(cy);
}
}
if(i == k-)
{
nowchar = nowch% + 'A';
if(ss[i] == nowchar)
{
nowchar = (++nowch)% + 'A';
}
if(nowchar == 'J')
nowch++,nowchar = 'K';
cy = "";
cy += ss[i];
cy += nowchar;
cout<<RUN(cy);
}
cout<<endl;
}
return ;
}

H.The Urge to Merge

DP。借鉴标程代码。

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <string>
#define Mod 1000000007
using namespace std;
#define N 50007 int mp[][];
ll dp[][]; ll Max(ll a,ll b,ll c,ll d)
{
return max(max(max(a,b),c),d);
} int main()
{
int cs = ,n;
int i,j,k;
while(scanf("%d",&n)!=EOF && n)
{
for(i=;i<;i++)
for(j=;j<=n;j++)
scanf("%d",&mp[i][j]);
//memset(dp,0,sizeof(dp));
for(i=;i<;i++)
dp[i][] = dp[i][] = ;
dp[][] = mp[][]*mp[][];
dp[][] = mp[][]*mp[][];
ll k1 = Max(dp[][],dp[][],,);
ll k2 = ;
ll s1,s2,s3,s4,s5; for(j=;j<=n;j++)
{
s1 = mp[][j-]*mp[][j];
s2 = mp[][j-]*mp[][j];
s3 = mp[][j-]*mp[][j];
s4 = mp[][j]*mp[][j];
s5 = mp[][j]*mp[][j]; dp[][j] = Max(k2,dp[][j-],dp[][j-],dp[][j-])+s1; //第一种组合
dp[][j] = Max(k2,dp[][j-],dp[][j-],dp[][j-])+s2; //第二种组合
dp[][j] = Max(k2,dp[][j-],dp[][j-],dp[][j-])+s3; //第三种组合 dp[][j] = Max(k2+s1+s2,dp[][j-]+s1+s2,k1+s4,);
dp[][j] = Max(k2,dp[][j-],,)+s1+s3;
dp[][j] = Max(k2+s2+s3,dp[][j-]+s2+s3,k1+s5,);
dp[][j] = Max(k2+s1+s2+s3,dp[][j]+s5,dp[][j]+s4,);
k2 = k1;
for(i=;i<;i++)
k1 = max(k1,dp[i][j]);
}
ll ans = -Mod;
for(i=;i<;i++)
ans = max(ans,dp[i][n]);
printf("Case %d: %d\n",cs++,ans);
}
return ;
}

(没做出来的以后持续更新)

2014 UESTC 暑前集训队内赛(2) 部分解题报告的更多相关文章

  1. 2014 UESTC 暑前集训队内赛(3) 部分解题报告

    B.Battle for Silver 定理:完全图Kn是平面图当且仅当顶点数n<=4. 枚举所有完全图K1,K2,K3,K4,找出最大总权重. 代码: #include <iostrea ...

  2. 2014 UESTC 暑前集训队内赛(1) 解题报告

    A.Planting Trees 排序+模拟 常识问题,将耗时排一个序,时间长的先种,每次判断更新最后一天的时间. 代码: #include <iostream> #include < ...

  3. 2014 UESTC暑前集训数据结构专题解题报告

    A.Islands 这种联通块的问题一看就知道是并查集的思想. 做法:从高水位到低水位依序进行操作,这样每次都有新的块浮出水面,可以在前面的基础上进行合并集合的操作.给每个位置分配一个数字,方便合并集 ...

  4. 2014 UESTC暑前集训搜索专题解题报告

    A.解救小Q BFS.每次到达一个状态时看是否是在传送阵的一点上,是则传送到另一点即可. 代码: #include <iostream> #include <cstdio> # ...

  5. 2014 UESTC暑前集训动态规划专题解题报告

    A.爱管闲事 http://www.cnblogs.com/whatbeg/p/3762733.html B.轻音乐同好会 C.温泉旅馆 http://www.cnblogs.com/whatbeg/ ...

  6. 2014 UESTC暑前集训图论专题解题报告

    A.方老师和缘分 http://www.cnblogs.com/whatbeg/p/3765621.html B.方老师和农场 http://www.cnblogs.com/whatbeg/p/376 ...

  7. 模拟赛T2 交换 解题报告

    模拟赛T2 交换 解题报告 题目大意: 给定一个序列和若干个区间,每次从区间中选择两个数修改使字典序最小. \(n,m\) 同阶 \(10^6\) 2.1 算法 1 按照题意模拟,枚举交换位置并比较. ...

  8. nowcoder(牛客网)提高组模拟赛第一场 解题报告

    T1 中位数(二分) 这个题是一个二分(听说是上周atcoder beginner contest的D题???) 我们可以开一个数组b存a,sort然后二分b进行check(从后往前直接遍历check ...

  9. UESTC-第五届ACM趣味程序设计竞赛第四场(正式赛)--不完全解题报告

    比赛链接: http://acm.uestc.edu.cn/contest.php?cid=230 A.Police And The Thief ---UESTC 1913 简单博弈,先假设在警察先走 ...

随机推荐

  1. CodeForces 149D Coloring Brackets

    Coloring Brackets time limit per test: 2 seconds memory limit per test: 256 megabytes input: standar ...

  2. CentOS 7.2 搭建 Openvpn 服务器

    本文将以目前最新的openvpn-2.3.13.tar.gz为例来介绍如何在Linux系统中安装.配置及使用OpenVPN. 在这里,我们选用了一台预装CentOS 7.2 64位系统的计算机作为Op ...

  3. SharePoint 2010 ——自定义上传页面与多文件上传解决方案

    最近项目遇到一个很麻烦的问题,原以为很容易解决,结果搞了那么久,先开个头,再慢慢写 SharePoint 2010 ——自定义上传页面与多文件上传解决方案 1.创建Sharepoint空白项目,创建应 ...

  4. 刚刚结束了公司EP流程,开始KMS项目开发了

    刚刚结束了公司EP流程,开始KMS项目开发了 EP流程:AGpoint+MOSS+C# KMS:MOSS上的文档管理系统

  5. 微信html5开发选哪一个

        html5选哪个开发框架       ①. Justep起步 X5框架 : 专门用来开发web App的大型开发工具集,x5 v3.0有765.58M,不选. ②.Jquery Mobile ...

  6. 同步推是如何给未越狱的IOS设备安装任意IPA的?

    工作准备: 1. 准备一台MAC 2. 拥有一份299企业证书, 然后按照下面步骤操作: 1. 把xxxx.ipa改成xxx.zip, 解压缩得到Payload文件夹 2. 替换Payload里的em ...

  7. 微信公众平台SDK Python

    微信公众平台SDK 项目背景 从2014年开始玩微信公众平台,试用过其中大多数的功能,如:消息回复.自定义菜单.公众号中的支付,页面授权等.之前的程序中都是直接调用公众平台的接口,这样复用功能无法实现 ...

  8. Android环境的搭建

    一.Java环境的配置(以JDK1.7为例) 在环境变量下查看,查看是否存在JAVA_HOME,没有的话新建一个 JAVA_HOME:java安装目录下jdk的安装目录 Path:jdk目录下面的bi ...

  9. iOS 杂笔-20(UIView和CALayer的区别与联系)

    iOS 杂笔-20(UIView和CALayer的区别与联系) 每个 UIView 内部都有一个 CALayer 在背后提供内容的绘制和显示,并且 UIView 的尺寸样式都由内部的 Layer 所提 ...

  10. iOS之 随笔-静态库创建Xcode7

    不多说直接上图 然后你就可以找到你的.a文件了还有你的头文件 在终端可以检查你所编译的静态库都支持什么架构(armv7,armv7s ,arm64)用这个命令 lipo -info 编译时候要看你Xc ...