2012年北京师范大学新生程序设计竞赛网络赛

BUAA Training 2013 #1 第一次训练题目发到了hust上,编译各种不熟悉。。。果然在hdu做习惯了么。。。第一题上来就各种编译不通过交了10次总算过了。。。 发通知的时候也说都是很简单的题目。。。作为一个即将大三的老人,和一群大一的神犇一起训练,压力总是有的。。。但是起点不一样,自己努力就好啦~~~ 不多说,上题(之前发过一次,但因为那时候训练还没有结束,就删掉了,然后,然后现在想从回收站回复的时候就无法回复了 阅读详情

好吧。。。

bnu的OJ做的相当不错。。。

然后复习unix无聊了就拿这场做了水题。。。

两题不会做悲剧。。。。。。

A. 校队的聚餐

2000ms
1000ms
65536KB
Special Judge
64-bit integer IO format:  %lld      Java class name:  Main
Font Size:   

在辛苦了一个暑假+半个学期之后,神棍的2012赛季终于结束了。大牛决定好好地请大家吃一顿大餐!

学校周边有2n家餐馆(将它们编号为0,1,2…2n-1),校队有M名队员。现在大家在讨论去哪家餐馆吃饭,一开始大牛给出了第一种决定方案——由大牛决定去哪家餐馆。由于在大牛眼中食物只分为喜欢吃和爱吃两类,因此大牛会从2n家餐馆中等概率地随机选择一家。

但大家感觉这一方案无法体现出校队民主的优秀特点,于是提出了方案二——M名队员每人选择一家餐馆,取餐馆编号的平均数作为最后的决定。由于在大家眼中只要大牛请客去哪都行,因此所有人都会从2n家餐馆中等概率地随机选择一家。

但很快大家发现第二种方案并不能保证得出的决定是整数,于是提出了方案三——M名队员每人选择一家餐馆,将每人所选的编号取异或后作为最后的决定。由于跟方案二相同的原因,因此所有人都会从2n家餐馆中等概率地随机选择一家。

temperlsyer作为“随便”餐馆的忠实顾客,对最终结果完全不关心。他想知道的是,对于方案一、方案二、方案三,最终结果的期望分别是多少。

Input

输入只有两个整数N和M(0≤N≤30,0<M≤109)。

Output

输出有三行,每行为一个小数,依次表示案一、方案二、方案三中最终结果的期望。相对或绝对误差在0.0001内均算正确。

Sample Input

1 1

Sample Output

0.50
0.50
0.50
/*
这个题前两种方案显然都是平均值
搞不明白为什么方案三不是按照m的奇偶性来判断
如果为奇数则为平均值,为偶数则为0?
不懂
 
*/
#include<iostream>
#include<cstdio>
#include<cmath> 
using namespace std;
int n,m;
double fun1(int n)
{
	double ans=pow(2.0,(double)n-1);
	return ans-0.5;
}
double fun2(int n)
{
	double ans=pow(2.0,(double)n-1);
	return ans-0.5;
}
double fun3(int n)
{
	double ans=pow(2.0,(double)n-1);
	return ans-0.5;
}
int main()
{
	while(cin>>n>>m)
	{
		printf("%.2lf\n",fun1(n));
		printf("%.2lf\n",fun2(n));
		printf("%.2lf\n",fun3(n));
	}
//	system("pause");
	return 0;
}

B. 化身

1000ms
1000ms
65536KB
64-bit integer IO format:  %lld      Java class name:  Main
Font Size:   

三国杀最近更新的武将中有一位叫“迷之仙人”——左慈的武将,他有两个技能:(1)化身——所有人都展示武将牌后,你随机获得两张未加入游戏的武将牌,选一张置于你面前并声明该武将的一项技能,你拥有该技能且同时将性别和势力属性变成与该武将相同直到该化身被替换。在你的每个回合开始时和结束后,你可以替换化身牌,你须为新的化身重新声明一项技能。(你不可声明限定技、觉醒技或主公技)。(2)新生——你每受到1点伤害,可获得一张新化身牌。游戏过程中化身牌是不需要展示的,其他人只能通过左慈声明的技能来推断他现在化身成了哪位武将,这项艰巨的任务就交给你了~~

Input

 

第一行为整数N(2≤N≤50),代表目前摸到的武将牌的数量(假设左慈是可以摸到这么多化身牌的);一个字符串代表当前声明的技能;

接下来N行,每行一个整数,代表武将的序号;一个整数M(1≤M≤5),代表该武将的技能数量;之后M个字符串(只包括小写字母),代表武将技能(不包括限定技、觉醒技和主公技),同时用空格隔开,字符串长度<10。

Output

 

输出当前声明的技能所属的武将序号   

Sample Input

2 aaa
1 2 aaa bbb
2 1 ccc

Sample Output

1

Hint

 

每个武将的技能都是不重复的


/*
水题一枚
*/
#include<iostream>
#include<cstring>
#include<cstdlib>
using namespace std;
struct hero
{
	int num;
	int m;
	char s[10][10];
}h[55];
int n;
char temp[10];
int main()
{
	while(cin>>n>>temp)
	{
		int ans;
		for(int i=0;i<n;i++)
		{
			int num,m;
			cin>>num>>m;
			for(int j=0;j<m;j++)
			{
				char str[10];
				cin>>str;
				strcpy(h[num].s[j],str);
				if(strcmp(str,temp)==0)
				{
					ans=num;
				}
				
			}
		}
		cout<<ans<<endl;
	}
//	system("pause");
	return 0;
}
			

C. 神Lisy的智商

1000ms
1000ms
65536KB
64-bit integer IO format:  %lld      Java class name:  Main
Font Size:   

Lisy是个很聪明的人,他有一个智力值。 

和比他聪明的人(智力值大于Lisy的,这个真心不多)辩论一次智力值会+2。
和比他笨的人(智力值小于等于Lisy)辩论一次智力会+1。
然后每个人只能辩论一次。安排一个辩论顺序。使得辩论完后Lisy的智商最高。
Orz神Lisy。

Input

第一行为一个整数K,表示数据组数。

每组数据有两行:
  第一行包含两个正整数n和p,表示要和Lisy辩论的人数,以及Lisy的初始智力值。
  第二行包含n个正整数,表示这n个人的智力值。

Output

第一行包含一个正整数,表示Lisy最终智力值的最大值。

Sample Input

2
5 91
88 98 92 94 90
1 90
90

Sample Output

99
91

Hint

输入保证:0<K<=50,0<n<=1000,0<智力值<=1000


/*
简单贪心
将对手按智商从小到大排序
依次与智商比自己大的人辩论
最后再与智商比自己低的人辩论就好
*/
#include<iostream>
#include<algorithm>
using namespace std;
int a[1005];
int main()
{
	int T;
	cin>>T;
	while(T--)
	{
		int n,p;
		cin>>n>>p;
		for(int i=0;i<n;i++)
		{
			cin>>a[i];
		}
		sort(a,a+n);
		int flag=0;
		for(int i=0;i<n;i++)
		{
			if(p<a[i])
			{
				p+=2;
			}
			else
			{
				flag++;
			}
		}
		cout<<p+flag<<endl;
	}
//	system("pause");
	return 0;
}

D. 整数边直角三角形

1000ms
1000ms
65536KB
64-bit integer IO format:  %lld      Java class name:  Main
Font Size:   

我国是最早发现勾股定理的国家,《周髀算经》记载的古人商高关于勾股定理的应用距今已有三千多年的历史。事实上,古人对于勾股定理的研究主要是针对整数边直角三角形。整数边直角三角形是指两条直角边和斜边都为整数的直角三角形。关于整数边直角三角形有一个有趣的结论:以任何大于2的素数为直角边的整数边直角三角形唯一存在。现在就希望你帮忙找出给定素数作为一直角边的整数边直角三角形。

Input

 

第一行一个正整数T(T<=100),表示一共有多少组数据,接下来T行,每一组数据一行,含有一个大于2的素数P(2<P<=107)。

Output

 

对于每组数据,输出一行为给定素数作为一直角边的整数边直角三角形三边长,按从小到大的顺序输出,以空格隔开。

Sample Input

2
3
5

Sample Output

3 4 5
5 12 13

Hint

请各位注意,此题需要使用long long,int的表示范围只有109。


/*
简单数学证明题
勾股定理+平方差公式易证三边为p,(p^2-1)/2,(p^2+1)/2;
*/
#include<iostream>
using namespace std;
int main()
{
	int T;
	long long p;
	cin>>T;
	while(T--)
	{
		cin>>p;
		cout<<p<<" "<<(p*p-1)/2<<" "<<(p*p+1)/2<<endl;
	}
//	system("pause");
	return 0;
}

E. 我爱背单词

1000ms
1000ms
65536KB
64-bit integer IO format:  %lld      Java class name:  Main
Font Size:   

为了准备GRE考试,大玉儿每天都要背单词。新东方的老师说,背单词就是不断地重复,于是他制定了一项计划,第一天初次记忆之后,在以后的某些天(比如第二天,第四天,第七天,第十五天,第三十天)再把这些单词看一遍。他发现这个方法效果很好,但是每个月总有那么几天,他需要看非常非常多的单词。于是,他想写个程序来知道某一天需要看多少个单词。

大玉儿一共要背D天的新单词(即没有复习的情况下,要连续背D天),每天背的新单词个数是N1,N2,…ND。他又制定了K个复习点,R1,R2,…,RK,表示在背完某天单词的第R1天,第R2天,……,第RK天,他会把那天的单词再复习一遍(所有D天的新单词都会按照这个计划复习)。Ri=1,则说明背单词当天就复习一遍,Ri=2表示背新单词的后一天会复习一遍。

接下来,大玉儿会有M个询问,Q1,Q2,…,QM,第i个询问表示大玉儿想知道第Qi天会看多少个单词(包括当天要记的新单词)。

Input

 

测试数据有多组,第一行是一个整数T(0<T<=30),表示数据组数。

对于每一组数据,第一行是一个正整数D(1<=D<=100),接下来一行有D个整数N1 N2 … ND,每个数之间用空格隔开,Ni表示大钰儿在第i天要看的新单词的数量(1<=Ni<=2000)。第三行有一个正整数K(1<=K<=100),表示有K个复习点。第四行有K个整数R1 R2 … RK,表示这K个复习点的时间(保证R1<R2<…<RK,且1<=Ri<=2000)。第五行是一个正整数M,表示有M个询问(1<=M<=10000)。第六行有M个整数Q1 Q2 … QM(1<=Qi<=10000),表示大钰儿想知道第Qi天要看多少个单词(从开始背新单词的那天算作第一天)。

Output

 

对于每组数据,对每个询问输出一行,第i行表示第Qi天大钰儿要看的单词数。

Sample Input

1
3
3 5 10
3
2 3 5
10
1 2 3 4 5 6 7 8 9 10

Sample Output

3
8
18
15
13
5
10
0
0
0

/*
简单hash+模拟
*/

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;
int D,K,M;
int n[105];
int r[105];
int hash[10005];
int main()
{
	int T;
	scanf("%d",&T);
	while(T--)
	{
		memset(hash,0,sizeof(hash));
		memset(n,0,sizeof(n));
		memset(r,0,sizeof(r));
		scanf("%d",&D);
		for(int i=1;i<=D;i++)
		{
			scanf("%d",&n[i]);
			hash[i]=n[i];
		}
		scanf("%d",&K);
		for(int i=1;i<=K;i++)
		{
			scanf("%d",&r[i]);
		}
		for(int i=1;i<=100;i++)
		{
			for(int j=1;j<=K;j++)
			{
				hash[i+r[j]-1]+=n[i];
			}
		}
		scanf("%d",&M);
		while(M--)
		{
			int q;
			scanf("%d",&q);
			printf("%d\n",hash[q]);
		}
	}
//	system("pause");
	return 0;
}

F. Soft Kitty

1000ms
1000ms
65536KB
64-bit integer IO format:  %lld      Java class name:  Main
Font Size:   

laimao很喜欢这首“BigBang”里的“Soft Kitty”,这首歌的歌词很简单只有6句,"soft kitty, warm kitty, little ball of fur,happy kitty, sleepy kitty, purr purr purr.",她总是唱着玩儿。现在她无聊了决定换一个玩法,你来说出一个数字n,她来唱出第n(1 ≤ n ≤ 10^9)句歌词。注意了她的唱法是,第i次唱这首歌时,每句歌词重复2^(i-1)次。就是像这样,“soft kitty, warm kitty, little ball of fur, happy kitty, sleepy kitty, purr purr purr, soft kitty, soft kitty, warm kitty, warm kitty, little ball of fur, little ball of fur,……”你能帮助她输出第n句歌词么(不包括标点)?

Input

多组数据,第一行是一个整数K(0<K<=100),表示数据组数。接下来K行,每行一个数字n,表示你需要输出第n句歌词。

Output

输出对应歌词

Sample Input

8
1
2
3
4
5
6
7
8

Sample Output

soft kitty
warm kitty
little ball of fur
happy kitty
sleepy kitty
purr purr purr
soft kitty
soft kitty

/*
模的简单应用
细心模拟就好
*/
#include<iostream>
#include<cmath>
using namespace std;
int n;
char s[6][30]={{"soft kitty"},{"warm kitty"},{"little ball of fur"},{"happy kitty"},{"sleepy kitty"},{"purr purr purr"}}; 
int cal(int n)
{
	int flag=1;
	int res=n;
	int temp=6;
	while(res>0)
	{

		res=res-flag*6;
		flag=flag*2;
	}
	flag/=2;
	res=res+flag*6;
	return (res-1)/flag;
}
int main()
{
	int T;
	cin>>T;
//	cout<<s[0]<<endl;
	while(T--)
	{
		cin>>n;
		if(n<=6)
		{
			cout<<s[n-1]<<endl;
		}
		else
		{
			cout<<s[cal(n)]<<endl;
		}
	}
//	system("pause");
	return 0;
}

G. 找规律问题

1000ms
1000ms
65536KB
64-bit integer IO format:  %lld      Java class name:  Main
Font Size:   

观察如下的序列

1)1

2)11

3)21

4)1211

5)111221

6)312211

如果您一眼看出规律了,Orz高智商 

没看出来也没关系,规律是酱紫的:

比如第3行 21  1个2和1个1  把数字抽出来 1211 得到第4行

现在对于给定任意一个N  输出第N行序列

Input

 

第一行为T 表示数据组数 (T<=100)

接下来T行每行有一个整数N (0<N<=20)

Output

对于每组数据,输出那一行序列

Sample Input

2
3 
4

Sample Output

21
1211

Hint

 

保证给定的N满足序列不会有连续十个数字是相同的,保证串长不超过1000


/*
简单模拟一下就好
打表就不要妄想了。。(眼睛花掉了。。)
*/
#include<iostream>
using namespace std;
char dp[25][1005];
int len[25];
void init()
{
	dp[1][1]='1';
	dp[2][1]='1';
	dp[2][2]='1';
	len[1]=1;
	len[2]=2;
	for(int i=2;i<20;i++)
	{
		int k=0;
		for(int j=1;j<=len[i];j++)
		{
			int cnt=1;
			while(dp[i][j]==dp[i][j+1])
			{
				cnt++;
				j++;
			}
			dp[i+1][++k]=cnt+'0';
			dp[i+1][++k]=dp[i][j];
		}
		len[i+1]=k;
	}
}
int main()
{
	init();
	int T;
	cin>>T;
	while(T--)
	{
		int n;
		cin>>n;
		for(int i=1;i<=len[n];i++)
		{
			cout<<dp[n][i];
		}
		cout<<endl;
	}
//	system("pause");
	return 0;
}
		

 


H. Triangle

1000ms
1000ms
65536KB
Special Judge
64-bit integer IO format:  %lld      Java class name:  Main
Font Size:   


 

如图的三角形,三边边长分别为AB=a,BC=b,CA=c,并且AA’/AB=p1,BB’/BC=p2,CC’/CA=p3;

现在对于给定的a,b,c和p1,p2,p3,请你计算图中红黄绿三部分的面积。

Input

 

第一行为一个T 表示测试数据组数 (T<=1000)

接下来的T行

每行先是3个整数 依次为 a b c  0<a,b,c<=10000  保证构成三角形

然后是3个两位小数 依次为p1 p2 p3  0.00<p1,p2,p3<0.50

Output

 

对于每组数据 输出一行 分别为红色 黄色 绿色部分的面积

中间用空格隔开 行末没有空格

答案误差在0.0001内即可

Sample Input

2
4 4 4 0.25 0.25 0.25
10 15 20 0.2 0.3 0.4

Sample Output

2.13175484 0.39970403 4.39674436
14.68004304 7.41819926 50.52019544


自己木有做出来。。。

看题解的说。。


 

I. 乘车问题

1000ms
1000ms
65536KB
64-bit integer IO format:  %lld      Java class name:  Main
Font Size:   

大玉儿最近在备战GRE考试。听说GRE数学非常简单,大玉儿想直接挑战难题。

新东方的老师给他推荐了《猴哥112数学难题》。

112难题的第一题描述如下:

Sixty-eight people are sitting in 20 cars and each car contains at most 4 people. What is the maximum possible number of cars that could contain exactly 1 of the 68 people?

题目的意思是说,68个人坐20辆车,每辆车最多坐4个人,问最多可能有多少辆车里面只坐着一个人?如果你在45秒钟之内算出了答案4,那么恭喜你,你的GRE数学一定能拿满分。

大玉儿并不想沉浸在这么简单的题目里面,于是他把这道题改进了一下:

P个人乘坐N辆车,每辆车最多坐E个人,如果要求每辆车至少坐一个人,那么可能会有多少辆车里面恰好坐着K个人?给出其上下界。

比如,10个人乘坐7辆车,每辆车最多可坐4个人,那么有多少辆车可能只坐了1个人呢?

1.选3辆车每辆坐2个人,剩下4辆车每辆坐1个人,于是至少有4辆车只坐一个人。

2.选6辆车每辆坐1个人,剩下的一辆车坐4个人。于是最多可以有6辆车只坐一个人。

所以,你需要给出这样的答案:至少有4辆,最多有6辆车里面恰好只坐了1个人。

大玉儿想了想,这个题目似乎没那么简单,作为程序猿,他想写一个程序来解决这个问题。

Input

输入数据有多组,第一行为一个整数T(0<T<=120),表示数据组数。接下来T行,每一行为每一组数据。

每一行包括4个整数,P N E K,中间用空格隔开。其中1<=P<=10000, 1<=N<=100, 1<=E<=100, 0<=K<=10000。输入数据保证P<=N*E并且N<=P。

Output

对于每一组数据,输出一行,包括2个整数a b,用空格隔开,表示至少有a辆车、最多有b辆车里面恰好坐着K个人。

注意,每辆车至少得坐一个人。

Sample Input

3
68 20 4 1
10 7 4 1
6 3 3 2

Sample Output

0 4
4 6
1 3

晕。。刚刚发现原来有官方解题报告。。



 

A. 校队的聚餐

本题在校队内部讨论过程中就被定义为游离在五个难度等级(简单,中下,中,中上,难)之外“坑题”。

   本题考察一些简单的数学功底

 方案一的结果只要按期望的定义去算就可以了,因为是每个数被取到的概率相等,所以直接(0+1+...+2^n-1)/2^n = (2^n-1)/2。

   方案二也是只需要比较基础的概率知识:相互独立事件中,和的期望等于期望的和。平均值 = 所有人和的期望/人数 =  每人期望的和/人数。又因为每个人的期望相同,所以直接等于一个人的期望*人数/人数 =一个人的期望 也就是方案一的结果。

    方案三稍微复杂一点(只是稍微)。很容易想到在问题中二进制中的每一位实际上都是相互独立的,故每一位可以单独考虑。可以简单的考虑位数为1的情况(也就是只有0和1)。一个人取异或后的结果为50%为0、50%为1。前两个人取异或后的结果为50%*50%+50%*50%=50%为0、50%*50%+50%*50%=50%为1,前三个人取异或后的结果为50%*50%+50%*50%=50%为0、50%*50%+50%*50%=50%为1……不管多少人取异或后每一位都是50%为0、50%为1,相当于方案一的取法,或者也推式子算(1+2+4+8+...+2^(n-1))/2 = (2^n-1)/2。

     综上,三种方案的结果的期望都是(2^n-1)/2。

B. 化身

本题是一道字符串处理的简单题,可利用结构体去存每个技能所对应的武将标号,最后扫一遍所有的技能找出给定的技能所对应的武将编号即可。

C.神Lisy的智商

本题的基本出发点是要对智商进行排序,同时从贪心的思想去思考:要想取得最大的智商值,肯定要先和神Lisy的当前智商值最接近的且比他大的人辩论。这样排序过后依次操作即可~~~同时在校队讨论题目过程中将此题的数据缩小,所以每次找到比当前值大的最小的智商值进行操作+2,直到没有比当前值大的为止,对剩下的进行+1操作。


D. 整数边直角三角形

由于题目中已经给出结论:以任何大于2的素数为直角边的整数边直角三角形唯一存在,同时在初中时大家一定见过这样的整数边直角三角形:7,24,25  11,60,61…..根据题目给出的结论,我们可以推出p^2=(a-b)(a+b),其中p是素数,所以a-b必定为1。所以剩下的a+b就是p^2了,然后就可以解方程了,需要注意(10^7)^2超过了int的表示范围,所以需要使用long long。

E. 我爱背单词

由于题目数据量不算太大,因此直接模拟for一遍就可以了

for(int i=1;i<=d;i++)

   for(int j=0;j<k;j++){

           word[i+r[j]-1]+=n[i];

}

和G题差不多,在M个询问前就把1到D+Rk-1天的单词数算出来,询问过程中如果Qi>D+Rk-1直接输出0,else输出word[Qi]。需要注意的是有多组数据,因此在输入每一组之前都要把word数组清零!


F. Soft Kitty

据出题者说本题的解题方法主要是2进制问题,这里说一个用数学方法推出的过程:

唱第m次这首歌时,该次需要唱6*2^m-1句;唱了m次之后总共唱了

句歌词;而对于给定的n,我们可以利用上式大致推算出m的值,m=log2(n/6+1)这就不难搞出第n句所要输出的歌词了吧,同时这个式子也在暗示我们本题确实与2进制有关~~~


G. 找规律问题

本题也是一道字符串处理题,属于中等难度。规律题目中已经给了,第i行的字符串是根据第i-1行的字符串得来的,看到n<=20可能会想到手动打表直接交上去,但是在比赛过程中能一次搞定还是很有难度的,况且n=20时输出的字符串长度会达到200+!!!这在编译器中一行是无法看全的,很容易CE!!

因此模拟一下就行了,在模拟过程中要注意:应比较当前字符与上一个字符 是否相同,不同的话就生成字符串,否则频数+1。这个模拟的过程应在输入n前完成,以便节约时间,也就是“离线打表”~~当然如果n>50的话可能会RE!


H. Triangle

这是一道不太常见的几何题,因为需要添加辅助线才能简化推导过程,当然用正弦定理和余弦定理来回倒角和边也是可以的(此题对精度的要求不高,而且是Special Judge),不过会很麻烦的 = =||

辅助线的构造方法:作B’D∥A’C并设BD=x,x可由△AA’O∽△ADB’以及△BB’D∽△BCA’推出,这样AD的长度也是可求的!下面第一个图中的黄色部分的面积就可利用相似比的平方求出,i.e. 对于△ADB’的面积,它的高与△ABC的高也存在相似比关系,这样就可以推导出△AA’O的面积,原图中其他两块黄色部分的面积可利用类似的方法求出,黄色面积的和即为S(黄)

对于绿色部分的面积,S’(绿)=△ABB’—(两块黄色的面积),这里△ABB’与,△ADB’等高的,只是底不同而已~~~。类似地可以求得三块绿色面积的总和

最后红色部分的面积S(红)=S(总)—S(绿)—S(黄)

总的面积可以用海伦公式求解 。

I. 乘车问题


 

这道题要求输出a 和b,我们把a称作下界,b称作为上界。

 

首先需要特殊判断的是只有一辆车(N==1)的情况。这个时候,所有人都只坐在这一辆车里面。所以看是否总人数为K,如果为K,则上下界均为1,如果不为K则上下界为0。再特判的就是K>E的情况,这个情况下界上界都是输出0。

 

下面讨论的是N不为1且K<=E的情况。

 

求上界比较简单。

假设最多有C辆车恰好坐K个人,那么K*C就是已经安排好了的人数。

P-K*C则是未安排的人数,N-C表示未安排的车辆。

它们必须满足下面的条件:

P-K*C >= N-C

P-K*C <= (N-C)*E

解上面两个方程,得   C<=(P-N)/(K-1) 并且 C<=(N*E-P)/(E-K),取其中较小的值就是上界。

K==1或者E==K的时候只需要计算上述有意义的一个值。

 

下面说说下界的计算。

首先,如果E==1,那么所有的车都是有且仅有一个人,此时下界就是N(也是P,因为这时P=N)。

接下来就是E不等于1的情况:

1.    K==E,那么我们先把每辆车都安排E-1个人,如果人已经安排完了,即(E-1)*N - P >= 0,我们就说,至少存在一种安排情况,使得没有一辆车坐E个人(即这时下界为0)。如果(E-1)*N < P,那么还剩下P-(E-1)*N个人,这几个人必须都坐在满的车里面了,即至少有P-(E-1)*N辆车里面有E个人。

 

2.    K==1, 我们则把每辆车安排至少2个人,如果此时人还没安排完或者恰好安排完,即2*N - P <= 0,我们就说,存在一种安排情况,使得没有一辆车里面只有1个人(即这时下界为0)。否则,至少会有2*N-P辆车里面只有一个人。(这里就是解方程,x+y=N, x+2y=P,x表示只一个人的车数,y表示只坐2个人的,得x=2N-P)。

 

3.    K!=1 && K!=E时,我们来考虑什么样的情况才有可能下界不为0。

如果 N*(K-1)>=P,我们可以找到一种方法,使得每一辆车都少于K个人,

如果 N*(K+1)<=P,那么显然我们可以找到一种方法,使得每一辆车都多于K个人。

也就是说,只有当 N*(K-1)<P<N*(K+1)时,才有可能有车子中坐了K个人。

对于这样的情况,我们可以有一种安排方法,使得每辆车都是K-1或者K个人(如果N*K<=P),或者K个人和K+1个人(如果P>N*K)。

假设现在有若干个K-1和若干个K(对于K和K+1的情况是一样的)。我们可以将每两个K分解成K-1和K+1,最后最多只会剩下一个K。所以,一定存在一种分配方法,使得所有的车只可能会有K+1,K,K-1个人,而且最多只有一个K。

 

这时候,我们把情况再细分一下。

 

先考虑K!=2并且K!=E-1的情况:因为N不等于1(最开始就讨论了),而这时候最多只有一个车里面有K,另外的车里面是K-1或者K+1,我们显然可以把这个K和一辆K-1变成K+1,K-2,或者把这辆K和一辆K+1变成K-1和K+2。所以,对于K!=2并且K!=E-1的情况,可以找到一种安排,使得所有的车都不含K。这种情况,下界就是0。

 

最后就是讨论K==2或者K==E-1的情况了:我们之前证明过,这种情况含K的车最多只有一辆,所以我们只要看有没有这一辆车就行了。

 

这里会有一个特例,即当K既等于E-1,又等于2。即K=2,E=3的情况。

对于这种特殊的情况,我们来看看什么情况下有这个2。

对于一辆车只有3种载人情况。

如果没有载2个人的车,那只有载着1个人和3个人的车。

可得下面的方程:

x+y = N

x+3y = P

这时候x,y要有整数解,必须满足P-N能被2整除。所以,这种情况下,如果P-N是偶数,那么就可以不含有K=2的车,下界为0,否则一定会有一辆K=2的车。

 

除了这种情况,那么K要么只等于E-1,要么只等于2。

什么时候必须有一个K==E-1呢?当且仅当N-1辆车已经装满了E个人,还剩下恰好一辆车和E-1个人。所以当 P=N*E-1时,肯定会有一辆坐着E-1个人的车。

什么时候必须有一个K==2呢?那当且仅当N-1辆车已经装了1个人,还剩下恰好一辆车和2个人。所以当P=N+1的时候,肯定会有一辆坐着2个人的车。

 

综上所述,这道题的解题按如下步骤讨论:(如果想自己先写,就不要看这部分了)

1.    如果K>E或者K<=0,则a=b=?; 结束

2.    如果N==1,则a=b=?; 结束

3.    如果E==1,则a=b=?; 结束

4.    先计算b:

a)     如果K==1,b=?;

b)     否则如果K==E,b=?;

c)     否则b=?。

5.    再计算a:

a)     如果 P<=(K-1)*N || P>=(K+1)*N ,a=?;结束;

b)     否则如果E==3 && K==2, a=?;结束;

c)     否则如果K==1, a=?;结束;

d)     否则如果K==E, a=?;结束;

e)     否则如果K==2, a=?;结束;

f)      否则如果K==E-1,a=?;结束;

g)     否则 a = 0,结束。


 

A. 校队的聚餐

本题在校队内部讨论过程中就被定义为游离在五个难度等级(简单,中下,中,中上,难)之外“坑题”。

   本题考察一些简单的数学功底

 方案一的结果只要按期望的定义去算就可以了,因为是每个数被取到的概率相等,所以直接(0+1+...+2^n-1)/2^n = (2^n-1)/2。

   方案二也是只需要比较基础的概率知识:相互独立事件中,和的期望等于期望的和。平均值 = 所有人和的期望/人数 =  每人期望的和/人数。又因为每个人的期望相同,所以直接等于一个人的期望*人数/人数 =一个人的期望 也就是方案一的结果。

    方案三稍微复杂一点(只是稍微)。很容易想到在问题中二进制中的每一位实际上都是相互独立的,故每一位可以单独考虑。可以简单的考虑位数为1的情况(也就是只有0和1)。一个人取异或后的结果为50%为0、50%为1。前两个人取异或后的结果为50%*50%+50%*50%=50%为0、50%*50%+50%*50%=50%为1,前三个人取异或后的结果为50%*50%+50%*50%=50%为0、50%*50%+50%*50%=50%为1……不管多少人取异或后每一位都是50%为0、50%为1,相当于方案一的取法,或者也推式子算(1+2+4+8+...+2^(n-1))/2 = (2^n-1)/2。

     综上,三种方案的结果的期望都是(2^n-1)/2。

B. 化身

本题是一道字符串处理的简单题,可利用结构体去存每个技能所对应的武将标号,最后扫一遍所有的技能找出给定的技能所对应的武将编号即可。

C.神Lisy的智商

本题的基本出发点是要对智商进行排序,同时从贪心的思想去思考:要想取得最大的智商值,肯定要先和神Lisy的当前智商值最接近的且比他大的人辩论。这样排序过后依次操作即可~~~同时在校队讨论题目过程中将此题的数据缩小,所以每次找到比当前值大的最小的智商值进行操作+2,直到没有比当前值大的为止,对剩下的进行+1操作。


D. 整数边直角三角形

由于题目中已经给出结论:以任何大于2的素数为直角边的整数边直角三角形唯一存在,同时在初中时大家一定见过这样的整数边直角三角形:7,24,25  11,60,61…..根据题目给出的结论,我们可以推出p^2=(a-b)(a+b),其中p是素数,所以a-b必定为1。所以剩下的a+b就是p^2了,然后就可以解方程了,需要注意(10^7)^2超过了int的表示范围,所以需要使用long long。

E. 我爱背单词

由于题目数据量不算太大,因此直接模拟for一遍就可以了

for(int i=1;i<=d;i++)

   for(int j=0;j<k;j++){

           word[i+r[j]-1]+=n[i];

}

和G题差不多,在M个询问前就把1到D+Rk-1天的单词数算出来,询问过程中如果Qi>D+Rk-1直接输出0,else输出word[Qi]。需要注意的是有多组数据,因此在输入每一组之前都要把word数组清零!


F. Soft Kitty

据出题者说本题的解题方法主要是2进制问题,这里说一个用数学方法推出的过程:

唱第m次这首歌时,该次需要唱6*2^m-1句;唱了m次之后总共唱了

句歌词;而对于给定的n,我们可以利用上式大致推算出m的值,m=log2(n/6+1)这就不难搞出第n句所要输出的歌词了吧,同时这个式子也在暗示我们本题确实与2进制有关~~~


G. 找规律问题

本题也是一道字符串处理题,属于中等难度。规律题目中已经给了,第i行的字符串是根据第i-1行的字符串得来的,看到n<=20可能会想到手动打表直接交上去,但是在比赛过程中能一次搞定还是很有难度的,况且n=20时输出的字符串长度会达到200+!!!这在编译器中一行是无法看全的,很容易CE!!

因此模拟一下就行了,在模拟过程中要注意:应比较当前字符与上一个字符 是否相同,不同的话就生成字符串,否则频数+1。这个模拟的过程应在输入n前完成,以便节约时间,也就是“离线打表”~~当然如果n>50的话可能会RE!


H. Triangle

这是一道不太常见的几何题,因为需要添加辅助线才能简化推导过程,当然用正弦定理和余弦定理来回倒角和边也是可以的(此题对精度的要求不高,而且是Special Judge),不过会很麻烦的 = =||

辅助线的构造方法:作B’D∥A’C并设BD=x,x可由△AA’O∽△ADB’以及△BB’D∽△BCA’推出,这样AD的长度也是可求的!下面第一个图中的黄色部分的面积就可利用相似比的平方求出,i.e. 对于△ADB’的面积,它的高与△ABC的高也存在相似比关系,这样就可以推导出△AA’O的面积,原图中其他两块黄色部分的面积可利用类似的方法求出,黄色面积的和即为S(黄)

对于绿色部分的面积,S’(绿)=△ABB’—(两块黄色的面积),这里△ABB’与,△ADB’等高的,只是底不同而已~~~。类似地可以求得三块绿色面积的总和

最后红色部分的面积S(红)=S(总)—S(绿)—S(黄)

总的面积可以用海伦公式求解 。

I. 乘车问题


 

这道题要求输出a 和b,我们把a称作下界,b称作为上界。

 

首先需要特殊判断的是只有一辆车(N==1)的情况。这个时候,所有人都只坐在这一辆车里面。所以看是否总人数为K,如果为K,则上下界均为1,如果不为K则上下界为0。再特判的就是K>E的情况,这个情况下界上界都是输出0。

 

下面讨论的是N不为1且K<=E的情况。

 

求上界比较简单。

假设最多有C辆车恰好坐K个人,那么K*C就是已经安排好了的人数。

P-K*C则是未安排的人数,N-C表示未安排的车辆。

它们必须满足下面的条件:

P-K*C >= N-C

P-K*C <= (N-C)*E

解上面两个方程,得   C<=(P-N)/(K-1) 并且 C<=(N*E-P)/(E-K),取其中较小的值就是上界。

K==1或者E==K的时候只需要计算上述有意义的一个值。

 

下面说说下界的计算。

首先,如果E==1,那么所有的车都是有且仅有一个人,此时下界就是N(也是P,因为这时P=N)。

接下来就是E不等于1的情况:

1.    K==E,那么我们先把每辆车都安排E-1个人,如果人已经安排完了,即(E-1)*N - P >= 0,我们就说,至少存在一种安排情况,使得没有一辆车坐E个人(即这时下界为0)。如果(E-1)*N < P,那么还剩下P-(E-1)*N个人,这几个人必须都坐在满的车里面了,即至少有P-(E-1)*N辆车里面有E个人。

 

2.    K==1, 我们则把每辆车安排至少2个人,如果此时人还没安排完或者恰好安排完,即2*N - P <= 0,我们就说,存在一种安排情况,使得没有一辆车里面只有1个人(即这时下界为0)。否则,至少会有2*N-P辆车里面只有一个人。(这里就是解方程,x+y=N, x+2y=P,x表示只一个人的车数,y表示只坐2个人的,得x=2N-P)。

 

3.    K!=1 && K!=E时,我们来考虑什么样的情况才有可能下界不为0。

如果 N*(K-1)>=P,我们可以找到一种方法,使得每一辆车都少于K个人,

如果 N*(K+1)<=P,那么显然我们可以找到一种方法,使得每一辆车都多于K个人。

也就是说,只有当 N*(K-1)<P<N*(K+1)时,才有可能有车子中坐了K个人。

对于这样的情况,我们可以有一种安排方法,使得每辆车都是K-1或者K个人(如果N*K<=P),或者K个人和K+1个人(如果P>N*K)。

假设现在有若干个K-1和若干个K(对于K和K+1的情况是一样的)。我们可以将每两个K分解成K-1和K+1,最后最多只会剩下一个K。所以,一定存在一种分配方法,使得所有的车只可能会有K+1,K,K-1个人,而且最多只有一个K。

 

这时候,我们把情况再细分一下。

 

先考虑K!=2并且K!=E-1的情况:因为N不等于1(最开始就讨论了),而这时候最多只有一个车里面有K,另外的车里面是K-1或者K+1,我们显然可以把这个K和一辆K-1变成K+1,K-2,或者把这辆K和一辆K+1变成K-1和K+2。所以,对于K!=2并且K!=E-1的情况,可以找到一种安排,使得所有的车都不含K。这种情况,下界就是0。

 

最后就是讨论K==2或者K==E-1的情况了:我们之前证明过,这种情况含K的车最多只有一辆,所以我们只要看有没有这一辆车就行了。

 

这里会有一个特例,即当K既等于E-1,又等于2。即K=2,E=3的情况。

对于这种特殊的情况,我们来看看什么情况下有这个2。

对于一辆车只有3种载人情况。

如果没有载2个人的车,那只有载着1个人和3个人的车。

可得下面的方程:

x+y = N

x+3y = P

这时候x,y要有整数解,必须满足P-N能被2整除。所以,这种情况下,如果P-N是偶数,那么就可以不含有K=2的车,下界为0,否则一定会有一辆K=2的车。

 

除了这种情况,那么K要么只等于E-1,要么只等于2。

什么时候必须有一个K==E-1呢?当且仅当N-1辆车已经装满了E个人,还剩下恰好一辆车和E-1个人。所以当 P=N*E-1时,肯定会有一辆坐着E-1个人的车。

什么时候必须有一个K==2呢?那当且仅当N-1辆车已经装了1个人,还剩下恰好一辆车和2个人。所以当P=N+1的时候,肯定会有一辆坐着2个人的车。

 

综上所述,这道题的解题按如下步骤讨论:(如果想自己先写,就不要看这部分了)

1.    如果K>E或者K<=0,则a=b=?; 结束

2.    如果N==1,则a=b=?; 结束

3.    如果E==1,则a=b=?; 结束

4.    先计算b:

a)     如果K==1,b=?;

b)     否则如果K==E,b=?;

c)     否则b=?。

5.    再计算a:

a)     如果 P<=(K-1)*N || P>=(K+1)*N ,a=?;结束;

b)     否则如果E==3 && K==2, a=?;结束;

c)     否则如果K==1, a=?;结束;

d)     否则如果K==E, a=?;结束;

e)     否则如果K==2, a=?;结束;

f)      否则如果K==E-1,a=?;结束;

g)     否则 a = 0,结束。

基于Java17、SpringBoot、vue3、antdv-next、uniapp等主流技术构建的全场景极速开发平台 MDP内置3个web端、1个移动端 重点解决用户中心、开发者平台、管理后台3个应 MDP-主数据平台,后端项目。专注于单点登录解决方案。内置用户中心、开发者平台、管理后台3个应用。包含:单点登录、Oauth2 登录、用户身份管理、应用申请、应用接入、主数据维护、主数据订阅、主数据广播、应用接口调用、接口管理管理和查看、系统配置等功能。 立即下载

相关推荐

Win7时间修复(时间错误修复文件)

运行方法:解压后运行reg文件即可。 支持的Win7版本: 1. Windows 7 Starter(入门版 / 初级版) 2. Windows 7 Home Basic(家庭普通版) 3. Windows 7 Home Premium(家庭高级版) 4. Windows 7 Professional(专业版) 5. Windows 7 Enterprise(企业版) 6. Windows 7 Ultimate(旗舰版) 7. Windows 7 Professional for Embedded Systems(嵌入式专业版) 8. Windows 7 Ultimate for Embedded Systems(嵌入式旗舰版)

Tyvj Q1033(线性扫描)

Q1033 - Unit9 - 智力值 From Admin    Normal (OI) 总时限:5s    内存限制:128MB    代码长度限制:64KB 描述 Description WJ是个很聪明的人,他有一个智力值。  和比他聪明的人(智力值大于WJ)辩论一次智力值会+2。 和比他笨的人(智力值小于等于WJ)辩论一次智力会+1。

nike0good |Oier&ACMer | 熟能生巧 942

科技中介服务机构想要提升服务效率,需要哪些数智工具支持?.docx

科技中介服务机构想要提升服务效率,需要哪些数智工具支持?

智神的诞生

尤瓦尔•赫拉利是一位享誉全球的作者,在其新作《未来简史》中,叙事恢宏,从历史、生物、心理和科技等多维度探讨了人类面临的重大议题。当饥荒、瘟疫和战争被一一击破,人类开始面临从智人成为智神的挑战。我们正在成为登临下一个星球的神。一个新时代正徐徐展开,而你我将为能参与这个时代而激动不已。

《云计算架构技术与实践》 4870

usb 扩容盘检测修复工具源码,编译产物

usb 扩容盘检测修复工具源码,编译产物

融合UWB和IMU割草机定位EKF研究(Matlab代码实现)

内容概要:本文主要介绍了一个名为“Plecs全桥LLC谐振变换器仿真模型”的技术资源,该资源聚焦于电力电子领域中的LLC谐振变换器建模与仿真,涵盖开环、闭环控制、软启动设计及参数优化等核心内容。文档不仅提供了LLC变换器的详细建模方法与仿真案例,还系统梳理了其在高效电源转换系统中的应用,包括隔离型全桥拓扑结构的设计与性能分析。此外,资源汇总了大量Matlab/Simulink仿真模型及相关科研方向,涉及新能源并网、储能控制、电机驱动等多个前沿领域,全面展示LLC谐振变换器在现代电力系统中的关键技术实现路径。同时,文档附带多种学习资料获取途径,如网盘链接和公众号资源,便于研究人员深入实践与拓展研究。; 适合人群:具备扎实的电力电子、自动控制理论基础,从事新能源发电、开关电源设计、电力系统仿真等相关领域的研究生、工程师及科研人员。; 使用场景及目标:①深入理解LLC谐振变换器的工作原理、建模方法与控制策略;②开展电力电子变换器的仿真验证与参数优化设计;③支撑科研项目、学位论文或工程项目的系统仿真与方案验证; 阅读建议:建议结合所提供的仿真模型与参考文献,使用Plecs或Simulink软件进行动手实践,重点掌握LLC谐振变换器的建模流程、闭环控制设计、软启动机制及参数调试技巧,以全面提升在实际工程中的应用与创新能力。

BUAA-SCSE Training day2

好多题目是uva上的 然后当时看过刘汝佳的书 再看看就好 还有一些思路都很清晰 代码也很少 就没有什么可写的了 A - Open Credit System Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit Status Practice UVA 11078

VeryBigMan 2263

基于变频控制的多相交错LLC谐振变换器闭环仿真(Simulink仿真实现)

基于变频控制的多相交错LLC谐振变换器闭环仿真(Simulink仿真实现)内容概要:本文主要介绍了基于Plecs的全桥LLC谐振变换器仿真模型,涵盖变频控制下的多相交错LLC谐振变换器闭环仿真、V2G电动汽车ACDC整流与双向CLLC谐振变换器充放电仿真、LLC谐振变换器的开环与闭环软启动设计,以及储能系统中双向Buck-Boost变换器结合模型预测电流控制和电压下垂控制的仿真研究。同时,文档列举了多种电力电子系统与控制策略的Simulink/Plecs仿真案例,涉及三相交错并联Buck变换器、三电平Buck直流变换器、单相Boost PFC电路等,展示了丰富的电力变换器建模与控制技术。此外,还包括参数设计报告、计算书及相关参考文献,适用于从事电力电子、新能源发电、电动汽车充放电系统等领域的研究人员和技术开发人员。; 适合人群:具备电力电子、自动控制理论基础,从事新能源、电动汽车、电力系统等相关领域研究的研发人员、高校研究生及高年级本科生。; 使用场景及目标:① 学习和掌握LLC谐振变换器及其他典型电力电子变换器的工作原理与建模方法;② 实现闭环控制策略如变频控制、软启动、模型预测控制、下垂控制等的仿真验证;③ 支持科研项目、毕业设计或工程开发中的系统仿真与优化设计。; 阅读建议:建议结合文中提供的仿真模型、设计报告与参考文献,逐步搭建并调试相应系统,重点关注控制策略的实现细节与参数整定过程,以深入理解系统动态响应特性与控制性能。

CF进击小分队(二)

今天刚刚回学校 有些无聊... 昂神推荐一个练习... 18:45开始... 去做了一下... 还有两道题.. 一个是nim博弈不会做.. 还有一个是字符串dp吧看样子...也不太会..或者说木有耐心做... 好饿.. 去吃点东西.. 明天不拖小明后腿好好训练.. A - Cottage Village Time Limit:2000MS    

VeryBigMan 2097

LaTeX新手入门以及TeXlive和TeXstudio的安装使用

作为一个新手,LaTeX的了解和使用很是费了一番功夫,因此,在这里给找不到路的同志们稍微介绍一下。如有错误,敬请指正。本篇内容基于Win10系统,因此安装在Mac或者Linux上的同学可以再找找其他的介绍文章。 目录 LaTeX介绍 LaTeX环境配置 一、TeXlive下载 二、TeXlive安装 1. 安装main installer 2. 正式安装 三、TeXstudio安装...

zywhehe的博客 21万+

【架构师面试-缓存与搜索-1】-缓存与缓存置换策略源码实现

1:什么是缓存 缓存:加速数据访问的存储,降低延迟(latency),提升吞吐量(Throughput)的利器。 1:缓存演进历史 1. 查库 2. ConcurrentHashMap 3. LRU 4. Guava Cache 5. 分布式缓存(redis,MemCache) 6. 多级缓存 2:在什么地方加缓存 缓存对于每个开发者来说是相当熟悉了,为了提高程序的性能我们会去加缓存,但是在什么地方加缓存,如何加缓存呢? 举个栗子:假设一个网站,需要提高性能,缓存可以放在浏览器,可以放

chongfa2008的博客 6440

BUAA-SCSE Training day1

小学期-计组实验 的确像学长说的认真做会有收获 今天老师检查的时候发现自己好多地方没有掌握 明天去好好看一看 大一开了算法提高班 好想去参加。。。 自己的基础实在是太差 有没有说什么都放下专心的搞算法 一直都是处于这样不尴不尬的境地 感觉昂神这个算法提高班的题目好像杭电的acm steps 刷起来蛮有感觉的。。 虽然好多题目不会。。 刚刚回宿舍水了一发贪心

VeryBigMan 2060

AI编码的“黑箱危机”终结者:OpenSpec如何让你的代码从“猜谜”变“契约”?

OpenSpec的真正价值,在于它将AI编码从"经验驱动"推向"契约驱动"——当人类与AI对"目标是什么"达成显式共识,编码就从"猜谜游戏"变成了"工程实现"。这种转变不仅提升效率,更重塑了开发者与AI的关系:AI从"替代者"回归"协作者",而人类则聚焦于"定义正确的事"而非"正确地做事"。对于开发者,OpenSpec提供了驾驭AI的缰绳;对于团队,它构建了协作的基石;对于行业,它预示着AI编码工业化的开端。

haolove527的专栏 1349

BUAA-SCSE Training day3 5 6 7

Highways Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 18400   Accepted: 8543 Description The island nation of Flatopia is perfectly flat. Unfortunately, F

VeryBigMan 2037

Ubuntu20.04安全重启后WiFi图标消失?MT7922网卡驱动修复全攻略

本文详细解析了Ubuntu20.04安全重启后WiFi图标消失的问题,特别是针对MT7922网卡驱动失效的情况。通过诊断命令和分步解决方案,包括禁用PCIe ASPM、更新无线固件和升级HWE内核,帮助用户快速恢复网络连接。文章还提供了进阶排查技巧和系统优化建议,确保WiFi稳定运行。

weixin_29202687的博客 370

拉曼光谱入门:10.显微拉曼与共聚焦技术

本文系统阐述了显微拉曼光谱技术与共聚焦原理的融合机制,详细解析了从激光激发、针孔空间滤波到光谱采集的完整光路架构,阐明了共聚焦设计在提升三维空间分辨率、抑制荧光背景及实现微区无损层析方面的核心优势,并探讨了关键光学器件的性能边界与系统技术局限。

qq_53529450的博客 168

BUAA集训队选拔赛

额。 这几天复习期末考试 话说这个期末考试真是无聊。。。好在还有最后一门计组了(如果面向对象大作业的队友靠谱能在我不在的时候完成的话)。。 计组的讲义都快倒背如流了。。。 不过。。。 不过再坚持两天应该就能拿到八千块了。。。 就可以入个单反了。。。。 虽说这个选拔赛明天才结束 不过看大家已经不再A题了。。 索性今晚也看不下去计组 就总结一下这次选拔赛吧。。 20题。。 只A

VeryBigMan 1770

【WRF后处理】基于wrf-python处理wrf运行结果wrfout_d01

基于wrf-python处理wrf运行结果wrfout_d01

WW、forever的博客 5209

BUAA-SCSE Training day9 Reviewing and Learning

九点开始做,11点半图书馆赶人,还有两题顺便去吃饭,下午OJ崩坏了,好了之后,终于Ak了。。。 水题。。。而且和大一一起训。。压力山大。 A - Hungry Sequence Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit Status

VeryBigMan 1404

双目摄像头全景解析:从几何光学到深度智能

双目视觉系统基于仿生学原理,通过水平排列的双摄像头模拟人眼视差机制实现三维感知。其核心是通过标定、校正、匹配等算法流程,将视差转换为深度信息,最终生成三维点云。该系统在自动驾驶、机器人导航、工业检测等领域有广泛应用,但面临弱纹理、重复图案等挑战。未来发展趋势包括与事件相机、深度学习等技术的融合,进一步提升精度和动态性能。

reset2021的博客 120

Android CPU调度优化完整分析 - 小白入门到精通

本文全面解析Android CPU调度优化技术,从硬件架构到内核实现。首先介绍ARM big.LITTLE架构的硬件拓扑和性能层级,包括大核、小核和DynamIQ技术。然后深入讲解CPU性能状态管理(P-states和C-states)和硬件计数器支持。内核层部分详细分析调度器架构,包括调度类层次结构和核心调度实体实现,重点剖析CFS调度器的虚拟运行时间计算、红黑树操作和PELT负载跟踪算法。最后探讨负载均衡触发条件和实现机制。全文循序渐进,为开发者提供完整的Android CPU调度优化知识体系。

xhxh510573522125的博客 154

BUAA-SCSE 暑期算法提高班 Final Contest

虽然昂神已经发了解题报告 但白天做的太匆忙,睡前还是稍微总结一下的吧 白天8点到9点扫了一眼晚上的计组实验,比较水 然后逛hust oj 发现今天木有比赛 无意中在bnuoj上发现了今天的final contest 开心啊 A. Ancient Cipher Time Limit: 3000ms Case Time Limit: 3000ms Memo

VeryBigMan 1331

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

我在刷题。

好久没有来更新了。。。 一直呆在学校里 有多校训练的时候去打比赛 说是去打比赛 两个队友, 一个去了美国说是和我们一起做,其实是我们开搞的时候他已经半夜了该睡觉了; 另一个竟然比我还要弱。。。 然后就是每场排在倒数前三位。。。签到题打铁。。。 感觉。。。 我对水题的把握还是挺准的。。。 就是。。。 题解报告上面的中等题什么的。。。就差那么一点点。。。 有的时候还妄想去写一写

VeryBigMan 1015

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

HUST 新人个人赛 7.23

吃喝等死的节奏....... 早起看hust oj上有练习 就等到九点开始做 第一题一看是简单贪心..后来发现数据量太大果断不会做...搜题解说是dp+线段树..ORZ..我线段树只会敲基本的...这题果断放弃了.. B - EZAC II Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%

VeryBigMan 760

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

从零单排线段树

饿..回家休息几天... 的确是很舒服.. 22号回去集训... 感觉拖小明的后腿真是不好意思... 好好体会了线段树 贴几道题 A. 敌兵布阵 Time Limit: 1000ms Case Time Limit: 1000ms Memory Limit: 32768KB 64-bit integer IO format: %I64d

VeryBigMan 543
上一篇: BUAA Training 2013 #1
下一篇: 树状数组学习
屎宝宝
博客等级 码龄15年 15粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值