#include
#include
using namespace std;
int a,b,c,t;
int main()
{
cin>>t;
while (t--)
{
cin>>a>>b>>c;
if (a==2011 && b==5 && c==22) {cout<<"nice day"<
PB
Description
统一资源定位符也被称为网页地址,是因特网上标准的资源的地址(Address)。它最初是由蒂姆·伯纳斯-李发明用来作为万维网的地址的。现在它已经被万维网联盟编制为因特网标准RFC1738了。
因特网上的可用资源可以用简单字符串来表示,被称为“统一资源定位器”(URL,Uniform / Universal Resource Locator)。URL是一种标准化的命名方法,它可以用统一的格式来表示Internet提供的各种服务中信息资源的地址,以便在浏览器中使用相应的服务。
统一资源定位符的标准格式如下:
协议类型://服务器地址(:端口号)/路径/文件名
在应用中,我们常常需要从一条URL中截取远程服务器地址部分(IP地址或域名),以便进一步处理。为此我们提出了一个新算法来实现该功能,基于……
呃,写到这里卡住了,现在需要你来实现这个“新算法”,输出所给URL中的远程服务器地址部分。
Input
输入数据的第一行是一个正整数T(0
每组测试数据只有一行,包含一条URL(长度小于1000个字符,为可见ASCII字符),其中不包含空格,符合URL标准格式。
Output
对于每组测试数据,在一行上输出该URL地址中的远程服务器地址部分(IP地址或域名,不包含端口号)。
Sample Input
5
http://acm.xidian.edu.cn/
http://qinz.maybe.im/
https://www.something.com:8080/p?id=0
ftp://ftp.anything.com/nothing.zip
http://127.0.0.1/a/b/c/d/e
Sample Output
acm.xidian.edu.cn
qinz.maybe.im
www.something.com
ftp.anything.com
127.0.0.1
Hint
Source
qinz
浅析统一资源定位符中的远程服务器地址检测 简单
题意好长,实际意思就是提取一个url地址的IP地址或域名部分,即第二个/与下一个:或/之间的内容。
懒人可以试下scanf(“%*[^/]//%[^/:]%*s”,c);puts(c);
#include
#include
#include
using namespace std;
int main(){
ifstream in("E:\read.txt");
string s;
int t=0,j,start;
int i=0;
while(getline(in,s)){
//cout<pcDescription经历了时间的洗礼,ZYF已经比去年成熟多了,最喜欢的活动不再是走楼梯,而是打麻将!作为一个有深度的人,他不满足于每人只有十几张牌的普通麻将。经过一段时间潜心研究,他发明出一种只有一种花 {MOD}、每人几十张甚至上百张牌的高级麻将。
这也导致了他一时难以知道听牌时到底需要哪些牌,现在他需要你的帮忙。给你当前的牌局,请计算出他听了哪几门。
以下是这种高级麻将的一些资料:1. 只有一种花 {MOD},有M种牌,分别是1,2,3...M,每种牌最多只有四张牌。2. 两张一样的牌称为对子,如(2,2);三张一样的牌称为刻子,如(5,5,5);三张数字连续的牌称为顺子,如(6,7,8),其它组合不考虑。3. 为了让问题简单化,胡牌时必须有且仅有一个对子,剩下的全是刻子或顺子。如(2,2,5,5,5,6,6,6,7,8,9)。4. 听牌是指再多一张合适的牌即可胡牌,可能有多张不同且合适的牌,即听多门。如(3,4,5,5)听2或5,(8)听8,(6,6,7,7)听6或7。
Input输入数据的第一行是一个正整数T(0Output对于每组测试数据,输出一行整数,其中,第一个正整数表示听的门数Q,接下来为Q个正整数,表示听的牌的数值Pi,整数之间以一个空格隔开。Sample Input513 91 1 3 3 3 5 5 5 7 7 7 9 913 91 3 3 3 5 5 5 7 7 7 7 8 91 200102 105 55 109 7 5 3 1Sample Output2 1 92 1 21 1000HintSourceqinz#include
#include
#include
using namespace std;
int vis[205];
int sum;
int n,m;
int arr[205],brr[205];
int a,b,c,d,e,f;
void cop()
{
int a;
for (a=1;a<=m;a++) brr[a]=arr[a];
}
int main()
{
int t;
cin>>t;
while (t--)
{
cin>>n>>m;
sum=0;
memset(arr,0,sizeof(arr));
memset(brr,0,sizeof(brr));
memset(vis,0,sizeof(vis));
for (a=1;a<=n;a++) {cin>>b; arr[b]++;}
for (a=1;a<=m;a++)
{
if (arr[a]<4)
{
arr[a]++;
for (b=1;b<=m;b++)
if (vis[a]==0 && arr[b]>=2)
{
cop();
//for (d=1;d<=m;d++) if (brr[d]!=0) cout<=3) brr[c]-=3;
while (brr[c]>=1 && brr[c+1]>=1 && brr[c+2]>=1)
{
brr[c]--;
brr[c+1]--;
brr[c+2]--;
}
if (brr[c]!=0) break;
}
if (c==m+1) {sum++; vis[a]=1;}
}
arr[a]--;
}
}
cout<
PD;
Description
“自然科学的皇后是数学。数学的皇冠是数论。哥德巴赫猜想,则是皇冠上的明珠。”哥德巴赫猜想表述为:任一大于2的偶数都可写成两个质数之和。当然我们今天不是来证明哥德巴赫猜想的,而是验证对于比较小的偶数其猜想是否成立。
Input
数据的第一行是一个正整数T(0
每组测试数据只有一行,为一个偶数M(2
6
10
12
Sample Output
3 3
5 5
5 7
Hint
Source
qinz
#include
//#include
#include
int is_z(int x)
{
int i=1;
if(x==2) return 1;
else
while(++i<=(int)sqrt(x)+1) {if(x%i==0) return 0;}
return 1;
}
//int z[60000];//zhu shu biao
int main()
{
int i,j=0,t,m,k,s,min,mini=0,mink=0;
//for(i=2;i<60000;i++)
// if(is_z(i)) z[j++]=i;
scanf("%d",&t);
while(t--&&scanf("%d",&m)==1)
{
mini=m/2;
mink=m/2;
if(m%2==0)
while(1)
{
if(is_z(mini)&&is_z(mink)) {printf("%d %d
",mini,mink);break;}
mini--;
mink++;
}
//printf("%d %d
",mini,mink);
}
return 0;
}
Description
作为一个实验室,单单只有计算机显得很不专业,为此WM也经常在实验室做一些物理、化学、生物、社会实验。一次他想通过把一些化合物混合在一起来制成炸药,而这些化合物的每种都有一个“特征值”Ai,如果混合物中有两种化合物“特征值”差的绝对值大于某个阀值M,则将它们混在一起会相当不稳定,随时可能爆炸——显然这种炸药是没前途的。另一方面,他想使他的炸药爆炸起来威力大点,在此我们简单地假设混合物中包含的化合物越多威力越大。现在实验室有N种不同的化合物,WM最多能把几种不同的化合物混在一起、形成一种有前途的炸药呢?
Input
输入数据的第一行是一个正整数T(0
每组测试数据有两行:
第一行为两个整数N,M(0
第二行包含N个整数,代表N种化合物的“特征值”Ai(0
3 2
1 3 5
3 1
1 3 5
5 2
3 5 3 4 1
Sample Output
2
1
4
Hint
Source
qinz
#include
#include
#include
#include
using namespace std;
int arr[105000];
int n,m;
int head,tail;
int best;
int i,j,l,r,a;
int t;
int main()
{
cin>>t;
while (t--)
{
best=1;
cin>>n>>m;
for (a=0;ascanf("%d",&arr[a]);
sort(arr,arr+n);
head=0; tail=0;
while (head
{
while (tail+1
//cout< best=max(best,tail-head+1);
head++;
}
cout<
}
}
Description
SHF是一个很神奇的人,他的电脑也采用了一种奇怪的密码验证方式,即一串数字的某个排列。CX是一个密码破解爱好者,当然对于这种密码很有兴趣。现在他知道SHF的初始密码是(1,2,3,...,N),每次用两个数字A和B来修改密码,也就是把[A,B]位置区间的数字反序,包括A、B位置的数字(A,B以1作为起始编号)。例如,现在的密码是(2,1,3,5,4),密码修改操作的数字是2和5,则修改后的密码为(2,4,5,3,1)。CX已经知道了SHF所有的密码修改操作的序列,但由于操作次数实在太多了,他计算不出最后的密码是什么,现在他需要你帮他计算出最后的密码。
Input
输入数据的第一行是一个正整数T(0
每组测试数据的第一行包含两个整数N,M(0
接下来有M行,每行有两个整数A,B(0
5 2
1 3
4 5
5 2
1 4
2 5
Sample Output
3 2 1 5 4
4 5 1 2 3
Hint
Source
qinz
#include
#include
#include
using namespace std;
int arr[105000];
int n,m;
int i,j,l,r,a;
int t;
int main()
{
cin>>t;
while (t--)
{
cin>>n>>m;
for (a=1;a<=n;a++) arr[a]=a;
for (a=1;a<=m;a++)
{
scanf("%d%d",&l,&r);
while (l
Description
排队是文明的表现,排好队则需要一些智慧。TripleZ队员提出了Z排队调度算法(Zlgorithm)——但似乎不怎么靠谱,不过可以试试看。
假设有N个人M个队列(人和队列都是从0开始编号,队列可以为空),第i个人在Pi时刻加入了Qi号队列,排到队头后需要花Ai时间来处理任务,而Zlgorithm需要做的是把某个人从一个队列拉出来,将其排到某个队列的尾部。
现在给出每个人开始排队的详细情况,以及给出Zlgorithm的调度指令,要求输出用Zlgorithm算法调度后的平均排队时间。对于任意一个时刻,如果有多个动作,则先按人的编号顺序进行出队处理,然后按人的编号顺序进行入队处理,最后按人的编号顺序处理调度指令。如果一个人正在处理任务时被调走,再次排到他的时候需要从头开始处理任务。
Input
输入数据的第一行是一个正整数T(0
每组测试数据的第一行为N,M,C(0
接下来是N行,每行包括Pi,Qi,Ai(0<=Pi<=10^9, 0<=Qi
接下来是C行,每行包含Zi,Bi,QTi(0<=Zi<=10^9, 0<=Bi
3 2 1
0 0 4
1 1 5
3 1 2
4 2 0
5 5 2
0 0 10
2 0 11
1 0 12
5 0 13
4 0 14
8 3 1
7 4 2
Sample Output
4.00
19.00
Hint
Source
qinz
她说:"E又是难题,全场没有一个通过。写到这里才发现今年的题目难度分布跟去年基本是一样的,意外。
西电校赛少有的模拟题。本来打算出的题数据范围是比这个要大,而且规则也要复杂点,但考虑到校赛时间不长,而且自己也不是很喜欢这种题,最后还是简化了一下。
直接用队列来模拟,对于每个队列的队头可以放到一个优先队列来判断哪个先排完——当然这题的数据范围比较小,只有100个队,也可以直接扫一遍,这样可以简化不少代码。每一次调度都相当于删掉老的人再在队尾加入一个新的人,其中对于删除操作用一个双端链表来模拟队列会比较简单,如果用普通的队列则用标记的方法,但要处理很多细节。
另外一个关键点是操作的处理顺序,这需要很仔细地看题意。"