20130831组队赛-(Kuala Lumpur Site) Asia Regional 2011

2024-05-04 19:48

本文主要是介绍20130831组队赛-(Kuala Lumpur Site) Asia Regional 2011,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

A:Smooth Visualization

 

就是一个转换吧,给你一个数字,按照题目给出的表达形式会形成一个不圆滑的锯齿,为了使得锯齿看起来更圆滑一

点,那么对于相邻的两个数字,如果其差值大于1,那么在这两个数字之间插入其中间应该拥有的数字,这样就可以形

成圆滑的锯齿,唉,WA了一次,是那个测试的时候加的一个换行符没有去掉,太粗心了.....

 

#include <iostream>
#include <cstdio>
#include <string>
#include <string.h>
#include <map>
#include <vector>
#include <cstdlib>
#include <algorithm>
#include <cmath>
#include <queue>
#include <set>
#include <stack>
#include <functional>
#include <fstream>
#include <sstream>
#include <iomanip>
#include <numeric>
#include <cassert>
#include <bitset>
#include <stack>
#include <ctime>
#include <list>
#define INF 0x7fffffff
#define max3(a,b,c) (max(a,b)>c?max(a,b):c)
#define min3(a,b,c) (min(a,b)<c?min(a,b):c)
#define mem(a,b) memset(a,b,sizeof(a))
using namespace std;
char num[1000];
#define N 10000007
char ans[7][1000];int A[1000];
int B[1000];
int main()
{int t;scanf("%d", &t);while(t--){mem(num, 0);mem(A, 0);mem(B, 0);scanf("%s", num);int len = strlen(num);int now = 1;int MAX = -INF;for(int i = 0; i < len; ++i){A[i] = num[i]-'0';if(A[i] > MAX)MAX = A[i];}B[0] = A[0];for(int i = 1; i < len; ++i){if((A[i] - A[i-1])> 1){for(int k = A[i-1] + 1; k < A[i]; ++k)B[now++] = k;}else if((A[i-1] - A[i]) > 1){for(int k = A[i-1] - 1; k > A[i]; --k)B[now++] = k;}B[now++] = A[i];}mem(ans, 0);for(int i = 0; i < MAX; ++i){for(int j = 0; j < now; ++j){if(B[j] >= (MAX-i))ans[i][j] = '+';elseans[i][j] = '*';}}for(int i = 0; i < MAX; ++i){printf("%s", ans[i]);printf("\n");}}return 0;
}


 

H:Robotic Traceur

就是给你N个点一个机器人位于一个点上,他要到达另外一个点上,每次移动的距离要不大于两腿长度之和。问你最小

的移动次数是多少?

我是直接从起点开始BFS,每次都保存可以连接到当前点的点,一层一层的向下计算,直到遇到终点,那么就输出此时

递增的步数即可,写了蛮久,那个计数的位置写错了:

 

#include <iostream>
#include <cstdio>
#include <string>
#include <string.h>
#include <map>
#include <vector>
#include <cstdlib>
#include <algorithm>
#include <cmath>
#include <queue>
#include <set>
#include <stack>
#include <functional>
#include <fstream>
#include <sstream>
#include <iomanip>
#include <numeric>
#include <cassert>
#include <bitset>
#include <stack>
#include <ctime>
#include <list>
#define INF 0x7fffffff
#define max3(a,b,c) (max(a,b)>c?max(a,b):c)
#define min3(a,b,c) (min(a,b)<c?min(a,b):c)
#define mem(a,b) memset(a,b,sizeof(a))
using namespace std;
struct node
{double x, y;int sum;int lp;
} num[1050];
int n, st, ed;
double L1, L2;
int vis[1050];double dis(node a, node b)
{return sqrt((a.x - b.x)*(a.x - b.x) + (a.y - b.y)*(a.y - b.y));
}
int ans = 0;
int BFS(int st)
{queue<node> Q;Q.push(num[st]);vis[st] = 1;while(!Q.empty()){node tt;tt = Q.front();Q.pop();for(int i = 1; i <= n; ++i){if(dis(num[i], tt) <= (L1+L2) && !vis[i]){num[i].sum = tt.sum + 1;if(i == ed)return 1;Q.push(num[i]);vis[i] = 1;}}}return 0;
}
int main()
{int t;scanf("%d", &t);while(t--){mem(num, 0);scanf("%d%d%d%lf%lf", &n, &st, &ed, &L1, &L2);for(int i = 1; i <= n; ++i){scanf("%lf%lf", &num[i].x, &num[i].y);num[i].lp = i;num[i].sum = 0;}ans = 0;mem(vis, 0);if(BFS(st))printf("%d\n", num[ed].sum);elseprintf("Impossible\n");}return 0;
}


 

G:Writings on the Wall

 

用到了KMP,可是我的想法有问题,一直TLE,还在想怎么改:

 

#include <iostream>
#include <cstdio>
#include <string>
#include <string.h>
#include <map>
#include <vector>
#include <cstdlib>
#include <algorithm>
#include <cmath>
#include <queue>
#include <set>
#include <stack>
#include <functional>
#include <fstream>
#include <sstream>
#include <iomanip>
#include <numeric>
#include <cassert>
#include <bitset>
#include <stack>
#include <ctime>
#include <list>
#define INF 0x7fffffff
#define max3(a,b,c) (max(a,b)>c?max(a,b):c)
#define min3(a,b,c) (min(a,b)<c?min(a,b):c)
#define mem(a,b) memset(a,b,sizeof(a))
using namespace std;#define N 50005
char A[N];
char B[N];
char KAOBEI[N];
int next[N];
int num[N];
int st;
int la, lb;
void getnext(int m)
{int i, j;next[1] = 0;j = 0;for(i = 2; i <= m; ++i){while(j > 0 && A[st+j+1] != A[st+i])j = A[st+j];if(A[st+j+1] == A[st+i])j++;next[i] = j;}
}
int KMP(int m)
{int pos = 1;int i, j, k;getnext(m);i = pos, k = 0, j = 0;while(i <= lb){while(j > 0 && A[st+j+1] != B[i])j = next[j];if(A[st+j+1] == B[i]){j ++;if(j == m)return i-m+1;}i++;}return -1;
}int t;
int ans;
int main()
{scanf("%d", &t);while(t--){mem(A, 0);mem(B, 0);mem(num, 0);ans = 1;scanf("%s%s", A+1, B+1);la = strlen(A+1);lb = strlen(B+1);int numlen = 1;for(int i = 1; i <= la; ++i){if(A[i] == B[1])num[numlen++] = i;}for(int i = 1; i < numlen; ++i){if((la - num[i] +1 <= lb)){st = num[i];int lp = la-num[i];int tp = KMP(lp);//cout << "tp: " << tp << endl;if(tp != -1)ans++;}}printf("%d\n", ans);}return 0;
}


 

 

 

这篇关于20130831组队赛-(Kuala Lumpur Site) Asia Regional 2011的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/959980

相关文章

Regionals 2004 Asia - Beijing Argus 小根堆

点击打开链接 小根堆 import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWriter;import java.math.BigInteger;import java.util.StringTokeni

经验笔记:跨站脚本攻击(Cross-Site Scripting,简称XSS)

跨站脚本攻击(Cross-Site Scripting,简称XSS)经验笔记 跨站脚本攻击(XSS:Cross-Site Scripting)是一种常见的Web应用程序安全漏洞,它允许攻击者将恶意脚本注入到看起来来自可信网站的网页上。当其他用户浏览该页面时,嵌入的脚本就会被执行,从而可能对用户的数据安全构成威胁。XSS攻击通常发生在Web应用程序未能充分过滤用户提交的数据时,导致恶意脚本得以传递

【python】—— Python爬虫实战:爬取珠海市2011-2023年天气数据并保存为CSV文件

目录 目标 准备工作 爬取数据的开始时间和结束时间 爬取数据并解析 将数据转换为DataFrame并保存为CSV文件         本文将介绍如何使用Python编写一个简单的爬虫程序,以爬取珠海市2011年至2023年的天气数据,并将这些数据保存为CSV文件。我们将涉及到以下知识点: 使用requests库发送HTTP请求使用lxml库解析HTML文档使用dateti

2014 Asia AnShan Regional Contest 题解

B:5071Chat 暴力模拟即可。注意Bye的时候先和always on top说bye。还有注意long long。 代码如下: #include <set>#include <cstdio>#include <cstring>#include <algorithm>using namespace std ;#pragma comment(linker, "/ST

Your connection to this site is not secure

chrome 打开某一个网站的网页地址栏提示Your connection to this site is not secure,同一个网站的其它地址栏打开不会 无效的方案 浏览器地址栏输入: chrome://flags 找到下边的选项,从Default改为Disabled即可成功解决 亲测这个方法不行 解决方案 点击右上角的3个点 -> 选择设置 -> 安全

[论文笔记]Single Shot Text Detector with Regional Atterntion

Single Shot Text Detector with Regional Atterntion 论文地址:https://arxiv.org/abs/1709.00138 创新点: 提出an atterntion mechanism,也就是an automatically learned attention map,从而实现抑制背景干扰。 模型架构: -text-sp

九度考研真题 浙大 2011-3浙大1004:Median

题目1004:Median //#include<iostream> //long long a1[1000010],a2[1000010]; //using namespace std; //int main(){ // long long n1,n2; // long long num; // // long long t; // wh

九度考研真题 浙大 2011-2浙大1002:Grading

题目1002:Grading #include<iostream> #include<stdio.h> #include<math.h>  using namespace std; int main() { double P,T,G1,G2,G3,Gj; double num; while(cin>>P) { cin>>T>>G1>>G2>>G

九度考研真题 浙大 2011-1浙大1001:A+B for Matrices

//题目1001:A+B for Matrices #include<iostream> #include<string.h> using namespace std; int main() { int M,N; int a1[11][11],a2[11][11]; int a_s[11],b_s[11]; int num=0; while(cin

MySQL 报 Unknown or incorrect time zone: 'Asia/Shanghai' 错

一般是因为mysql中缺少了关于timezone的表 可以到http://dev.mysql.com/downloads/timezones.html下载对应版本的sql语句 一般是下载posix标准的那张表 解压之后, 再终端 登陆mysql 查看mysql的版本在终端直接 输入 mysql -V //未登录进mysql的时候 mysql -u root -p密码use mys