如果奇迹有颜色,那么一定是暴力or模拟比较6
模拟就是一个思想,给你一个东西,没有很好的算法去解决,只需要计算机去暴力,优雅的暴力就可以叫算法了
主要还是考大家的代码能力,这次题目应该不需要任何前置技能。
1001
Total Submit: 27 Accepted: 9
Description
本题要求实现一种数字加密方法。首先固定一个加密用正整数A,对任一正整数B,将其每1位数字与A的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对13取余――这里用J代表10、Q代表11、K代表12;对偶数位,用B的数字减去A的数字,若结果为负数,则再加10。这里令个位为第1位。
Input
输入在一行中依次给出A和B,均为不超过100位的正整数,其间以空格分隔。
Output
在一行中输出加密后的结果。
Sample Input
1234567 368782971
Sample Output
3695Q8118
Uploader
A就是按照题目所描述的模拟,TYX的代码还是很棒的,直接拿来用
#include<stdio.h>
#include<string.h>
int main()
{
char s[],ss[];
int hh[]={};
int i,j;
scanf("%s %s",s,ss);
int len1=strlen(s);
int len2=strlen(ss);
for(i=len2-,j=;i>=;i--,j++)
{
hh[j]=ss[i]-'';
}
for(i=len1-,j=;i>=;i--,j++)
{
if(j%==)
{hh[j]-=(s[i]-'');
if(hh[j]<)hh[j]+=;}
else hh[j]=(hh[j]+(s[i]-''))%;
}
if(len2<len1)len2=len1;
for(i=len2;i>;i--)
{
if(hh[i]<)printf("%d",hh[i]);
else if(hh[i]==)printf("J");
else if(hh[i]==)printf("Q");
else if(hh[i]==)printf("K");
}
printf("\n");
}
1002
Total Submit: 13 Accepted: 5
Description
本题要求将给定的N个正整数按非递增的顺序,填入“螺旋矩阵”。所谓“螺旋矩阵”,是指从左上角第1个格子开始,按顺时针螺旋方向填充。要求矩阵的规模为m行n列,满足条件:m*n等于N;m>=n;且m-n取所有可能值中的最小值。
Input
输入在第1行中给出一个正整数N,第2行给出N个待填充的正整数。所有数字不超过104,相邻数字以空格分隔。
Output
输出螺旋矩阵。每行n个数字,共m行。相邻数字以1个空格分隔,行末不得有多余空格。
Sample Input
12
37 76 20 98 76 42 53 95 60 81 58 93
Sample Output
98 95 93
42 37 81
53 20 76
58 60 76
Uploader
螺旋矩阵其实就是先往右,再往下,再往左,再往右,再往上,一次少两排两列
最后一个不确定往哪个方向走的,当已经填满n-1的时候填
#include <stdio.h>
#include <algorithm>
int cmp(int a,int b)
{
return a>b;
}
using namespace std;
int a[],c[][];
int main()
{
int N,m,n,i;
scanf("%d",&N);
for(i=; i<N; i++)
scanf("%d",&a[i]);
if(N==)
{
printf("%d\n",a[]);
}
else
{
int f=;
for(i=; i*i<=N; i++)
if(N/i*i==N&&f>N/i-i)
{
f=N/i-i;
n=i;
m=N/i;
}
sort(a,a+N,cmp);
int j=,now=,U=,D=m,L=,R=n;
i=;
while(now<N)
{
while(j<R&&now<N)
{
c[i][j]=a[now++];
j++;
}
while(i<D&&now<N)
{
c[i][j]=a[now++];
i++;
}
while(j>L&&now<N)
{
c[i][j]=a[now++];
j--;
}
while(i>U&&now<N)
{
c[i][j]=a[now++];
i--;
}
i++;
j++;
U++,D--;
L++,R--;
if(now==N-)
c[i][j]=a[now++];
}
for(i=; i<=m; i++)
{
printf("%d",c[i][]);
for(j=; j<=n; j++)
printf(" %d",c[i][j]);
printf("\n");
}
}
return ;
}
1003
Total Submit: 9 Accepted: 7
Description
hqj是tzc acm 2009集训队中唯一一个数学系的同学,因此经常有人向他请教数学问题,某日wk向他请教一道概率题目,他浪费了3页草稿纸都没解出来,下面的题目也是概率题,如果你做出来了,你肯定能够超越hqj。你能编个程序帮他解决吗?
给定n个元件已知它们是并联还是串联,告诉你各个元件正常工作的概率,求整个电路正常工作的概率。
Input
第一行输入t,表示有t组数据,每组数据的第一行包含一个字符串s和一个正整数n(使用若干个空格分隔),当s="parallel",表示电路并联,当s="series",表示串联。第二行有n个数据,表示n个元件正常工作的概率。
Output
输出电路能正常工作的概率,输出格式参照样例输出,保留两位小数。
Sample Input
2
parallel 3
60.00% 70.00% 40.00%
series 5
50.00% 40.00% 20.00% 30.00% 60.00%
Sample Output
92.80%
0.72%
Hint
在屏幕上输出一个%的方法:printf("%%")。
Uploader
看他是串联还是并联,分别分析求解
#include <stdio.h>
#include<string.h>
int main()
{
char s[],*b="parallel";
int t,n,i,r;
double a[],sum;
scanf("%d",&t);
while(t--)
{
scanf("%s",s);
scanf("%d",&n);
for(i=; i<n; i++)
scanf("%lf%%",&a[i]);
r=strcmp(s,b);
if(r==)
{
sum=1.0;
for(i=; i<n; i++)
sum=sum*(-a[i]);
for(i=; i<n; i++)
sum=sum*0.01;
printf("%.2f%%\n",(-sum));
}
else
{
sum=1.0;
for(i=; i<n; i++)
sum=sum*a[i];
for(i=; i<n; i++)
sum=sum*0.01;
printf("%.2f%%\n",sum);
}
}
return ;
}
1004
Total Submit: 9 Accepted: 8
Description
经过总理的多次敦促,工信部吹风,让大家期盼已久的“手机流量不清零”终于有了突破!
中国移动、中国电信、中国联通三大运营商同时发布通知,宣布手机套餐内流量单月不清零,用户当月套餐内剩余流量可转存至次月继续使用,但在次月底失效。比如crq的套餐是每月500MB,10086告知上月剩余结转流量150MB,本月可以使用650MB。结果本月才使用了550MB,剩下的100MB就被收走了,下一个月并不能使用,要是本月使用450MB,那还有50MB能结转到下个月使用。
现给定用户每月的套餐流量以及用户一年12个月每个月的流量使用情况,请打印出每个月的流量费用。
第一个月时,假设之前流量剩余为0。
Input
输入数据有13行,第一行为两个整数T和M,分别为用户的套餐流量(单位为MB)以及包月费用(单位元),接下来12行每行一个整数,表示1到12月每月的流量使用值A1, A2, ..., A12(单位为KB)。
所有流量值不超过1GB,超出部分按照每KB计1分钱。
Output
输出包含12行,每行输出一个整数,表示1到12月每月花费的流量费用(单位为分)。
Sample Input
500 30
102400
204800
102400
307200
409600
409600
102400
307600
614400
512000
614400
204800
Sample Output
3000
3000
3000
3000
3000
3000
3000
3000
3000
3000
105400
3000
Hint
其中:
1GB = 1024MB
1MB = 1024KB
1KB = 1024B
Uploader
真的模拟,把情况全都列出来就好了
#include <stdio.h>
int main()
{
int t,m,i;
scanf("%d%d",&t,&m);
int n=,y[];
t=t*;
m=m*;
y[]=;
for(i=; i<=; i++)
{
scanf("%d",&y[i]);
y[i]=t-y[i];
if(y[i]+y[i-]<)
{
printf("%d\n",m-y[i]-y[i-]);
y[i]=;
}
else
{
printf("%d\n",m);
if(y[i]<)y[i]=;
}
}
return ;
}
1005Time Limit(Common/Java):1000MS/3000MS Memory Limit:65536KByte
Total Submit: 13 Accepted: 5 Description 小X平时喜欢看对称的东西,其中小X最喜欢回文串,每次看到回文串都会很开心。今天上课的时候小X心情不好,因此他的朋友小Y想要在书上找到回文串给X看。现在有个字符串,小Y想要在里面找到最长的回文字符子串。然而小Y的眼神一看到英文字母就头疼,你可以写个程序帮他找到最长回文子串么。 回文串是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。 Input 输入有多组数据。 每组数据输入一个字符串S(0<len<1000),S由小写字母组成。当S为“end”时输入结束。 Output 输出格式Case x: y。x表示第几组数据,y表示最长回文子串的长度。 Sample Input level Sample Output Case 1: 5 Uploader |
中心扩展法求最长回文串
#include <stdio.h>
#include <string.h>
int la(char s[],int f,int d)
{
while(s[f]==s[d]&&f<=d)
{
f++;
d--;
}
if(s[f]!=s[d])
return ;
else
return ;
}
int max(char s[])
{
int l=strlen(s);
int i,j;
int zl=;
if(l==)
{
return ;
}
for(i=; i<l; i++)
for(j=i+; j<l; j++)
if(la(s,i,j))
{
zl=(zl<j-i+?j-i+:zl);
}
return zl;
}
int main()
{
char s[];
int i=;
while(~scanf("%s",s))
{
if(strcmp(s,"end")==)break;
printf("Case %d: %d\n",i++,max(s));
}
return ;
}
我的马拉车版本
#include<bits/stdc++.h>
using namespace std;
const int N=;
int n, p[N];
char s[N], str[N];
void kp()
{
int i,mx = ,id;
for(i=n; str[i]!=; i++)
str[i]=;
for(i=; i<n; i++)
{
if( mx > i )
p[i] = min( p[*id-i], p[id]+id-i );
else
p[i] = ;
for(; str[i+p[i]] == str[i-p[i]]; p[i]++)
;
if( p[i]+i>mx )
{
mx=p[i]+i;
id=i;
}
}
} void init()
{
str[] = '$',str[] = '#';
for(int i=; i<n; i++)
{
str[i*+] = s[i];
str[i*+] = '#';
}
n = n*+;
s[n] = ;
}
int main()
{
int i, ans;
int k=;
while(scanf("%s",s)!=EOF)
{
if(strcmp(s,"end")==)break;
n = strlen(s);
init();
kp();
ans = ;
for(i=; i<n; i++)
if(p[i]>ans)ans = p[i];
printf("Case %d: %d\n",k++,ans-);
}
return ;
}
1006Time Limit(Common/Java):1000MS/3000MS Memory Limit:65536KByte
Total Submit: 5 Accepted: 4 Description 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程。给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差的绝对值>=1。要求由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后2位。 提示:记方程f(x)=0,若存在2个数x1和x2,且x1<x2,f(x1)*f(x2)<0,则在(x1,x2)之间一定有一个根。 Input 一行4个数..分别表示题目中的a,b,c,d..四个数 (注意不一定是整数哦,虽然样例是) Output 一行三个数。精确到小数点后2位,分别表示题目中的三个根。 Sample Input 1 -5 -4 20 Sample Output -2.00 2.00 5.00 Uploader |
看起来非常难做,但是就是暴力,因为说答案精确两位两数了,从左开始枚举就是了
#include<cstdio>
#include<cmath>
double a,b,c,d;
int main()
{
int m=;
scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
for(double x=-100.0; x<=100.0; x+=0.01)
if(fabs(a*x*x*x+b*x*x+c*x+d)<=0.000001)
{
if(m)printf(" ");
printf("%.2f",x),m=;
}
return ;
}
1007
Total Submit: 12 Accepted: 4
Description
Given a sequence of K integers { N1, N2, ..., NK }. A continuous subsequence is defined to be { Ni, Ni+1, ..., Nj } where 1 <= i <= j <= K. The Maximum Subsequence is the continuous subsequence which has the largest sum of its elements. For example, given sequence { -2, 11, -4, 13, -5, -2 }, its maximum subsequence is { 11, -4, 13 } with the largest sum being 20.
Now you are supposed to find the largest sum, together with the first and the last numbers of the maximum subsequence.
Input
Each input file contains one test case. Each case occupies two lines. The first line contains a positive integer K (<= 10000). The second line contains K numbers, separated by a space.
Output
For each test case, output in one line the largest sum, together with the first and the last numbers of the maximum subsequence. The numbers must be separated by one space, but there must be no extra space at the end of a line. In case that the maximum subsequence is not unique, output the one with the smallest indices i and j (as shown by the sample case). If all the K numbers are negative, then its maximum sum is defined to be 0, and you are supposed to output the first and the last numbers of the whole sequence.
Sample Input
10
-10 1 2 3 4 -5 -23 3 7 -21
Sample Output
10 1 4
Uploader
#include<bits/stdc++.h>
using namespace std;
int n,a,fi,sum,maxx,pre,maxi,maxj,flag;
int main()
{
scanf("%d",&n);
int a[];
for(int i=;i<n;i++)
{
scanf("%d",&a[i]);
if(a[i]>=)
flag=;
}
for(int i=;i<n;i++)
{
sum+=a[i];
if(sum>maxx||sum==maxx&&maxx==)maxx=sum,maxi=pre,maxj=i;
if(sum<)sum=,pre=i+;
}
if(!flag)
printf("0 %d %d\n",a[],a[n-]);
else
printf("%d %d %d\n",maxx,a[maxi],a[maxj]);
return ;
}
1008
Total Submit: 8 Accepted: 4
Description
给你n根火柴棍,你可以拼出多少个形如“A+B=C”的等式?等式中的A、B、C是用火柴棍拼出的整数(若该数非零,则最高位不能是0)。用火柴棍拼数字0-9的拼法如图所示:
注意:
1. 加号与等号各自需要两根火柴棍
2. 如果A≠B,则A+B=C与B+A=C视为不同的等式(A、B、C>=0)
3. n根火柴棍必须全部用上
Input
共一行,又一个整数n(n<=24)。
Output
共一行,表示能拼成的不同等式的数目。
Sample Input
14
Sample Output
2
Hint
2个等式为0+1=1和1+0=1。
Uploader
这个就是暴力每个字符需要几根火柴
#include<stdio.h>
int a[]={,,,,,,,,,};
int Fun(int n)
{
int i,j,sum=;
if(n==)
return ;
while(n)
{
sum+=a[n%];
n/=;
}
return sum;
}
int main()
{
int i,j,k,n,sum;
scanf("%d",&n);
n-=;sum=;
for(i=;i<;i++)
for(j=;j<;j++)
{
if(Fun(i)+Fun(j)+Fun(i+j)==n)
{
sum++;
}
}
printf("%d\n",sum);
return ;
}
gld大佬的,预处理之后就可以加快了
#include<iostream>
using namespace std;
int main()
{
int i,j,m,n,sum=,a[]={,,,,,,,,,};
cin>>n;
for(i=;i<=;i++)
{
m=i;
while(m!=)
{
a[i]=a[i]+a[m%];
m=m/;
}
}
n=n-;
if(n>)
for(i=;i>=;i--)
{
for(j=;j<=i;j++)
{
if(a[i]+a[j]+a[i-j]==n)
{
sum++;
}
}
}
printf("%d",sum);
}
1009
Total Submit: 5 Accepted: 3
Description
本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。
Input
输入在1行中依次给出A和B,中间以1空格分隔。
Output
在1行中依次输出Q和R,中间以1空格分隔。
Sample Input
123456789050987654321 7
Sample Output
17636684150141093474 3
Uploader
模拟下大数
#include<iostream>
#include<string>
using namespace std;
int main(){
string str,ans;
int n,d = ;
cin>> str>> n;
for(int i = ; i <= str.size()-; i++){
int current = d * + (str[i]-'');
ans+=(current/n+'');
d=current % n;
}
for(int i=(ans[] == ''&&ans.size()!=)?:;i<ans.size();i++)
cout << ans[i];
cout << " " << d;
return ;
}
1010
Total Submit: 8 Accepted: 7
Description
给定操作数,对其进行二进制运算。
二进制运算主要有:
&:与运算,二元运算符,当两个位都为1时结果才为1,其他为0
|:或运算,二元运算符,当两个为都为0时结果才为0,其他为1
~:非运算,一元运算符,当该位为0时结果为1,否则为0
^:异或运算,二元运算符,当两个位不同时结果为1,否则为0
Input
输入有多组,第一行数据组数T,接下来有T行,每行一个运算,可以为:
& a b
| a b
~ a
^ a b
运算符和操作数、操作数和操作数之间有空格隔开, a和b均为整数,绝对值不大于100,系统int占32bits。
Output
输出结果
Sample Input
2
& 1 2
~ 1
Sample Output
0
-2
Uploader
真的签到题
#include <stdio.h>
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
char c;
int a,b;
getchar();
scanf("%c",&c);
if(c=='&')
{
scanf("%d%d",&a,&b);
printf("%d\n",a&b);
}
else if(c=='|')
{
scanf("%d%d",&a,&b);
printf("%d\n",a|b);
}
else if(c=='^')
{
scanf("%d%d",&a,&b);
printf("%d\n",a^b);
}
else
{
scanf("%d",&a);
printf("%d\n",~a);
}
}
return ;
}
1011
Total Submit: 10 Accepted: 5
Description
世界上最遥远的距离
不是生与死
而是我就站在你面前
你却不知道我爱你
世界上最遥远的距离
不是我就站在你面前你却不知道我爱你
而是明明知道彼此相爱
却不能在一起
世界上最遥远的距离
不是明明知道彼此相爱却不能在一起
而是相约好了私奔的时间
我穿越到了未来 你却回去了古代
----摘自《小Q失恋日记 》第117卷513页
当小Q使出浑身解数,终于赢得HR女神芳心的时候,却出现了一个意外情况,那就是白富美HR的妈妈并不同意他们交往,当听说小Q只是一个码农,特别是听说小Q曾经参加过资本主义国家发起的SM/ICPC比赛的时候,更是坚决反对!
爱情是伟大的,但是得不到亲人祝福的爱情却备受折磨,小Q和HR相约在腾讯第二届编程马拉松大赛进行到第5天的时候(即2013年3月24日),一起“向前穿越D天,然后开启幸福新生活”。
其勇气可谓令人赞叹,但可怜的小Q却总是备受折磨----小Q理解的“向前穿越”是朝着未来的方向,而女友HR理解的“向前穿越”却是朝着古代的方向!
假设已知现在的日期和穿越的天数D,你能计算出小Q和女友各自到达的年代吗?
Input
输入首先包含一个整数N,表示有N组测试用例;
接下来N行是N组数据,每一行包含一个正整数D(0<=D<=10,0000),D表示向前穿越的天数。
Output
请计算并输出小Q和女友分别到达的日期,日期格式为YYYY/MM/DD,两个日期中间用一个空格隔开,每组数据占一行,具体输出格式请参见样例。
Sample Input
2
6
30
Sample Output
2013/03/30 2013/03/18
2013/04/23 2013/02/22
Uploader
D并不大,可以去暴力出来的
#include <stdio.h> int a[] = {,,,,,,,,,,,,};
const int Y=,M=,D=;
void deal1(int k)
{ int y = Y,m = M,d = D;
while(k--)
{
if(y%==||y%==&&y%!=)
a[]=;
else a[]=;
d--;
if(d<=)
{
m--;
if(m<=)
{
m = ;
y--;
}
d = a[m];
}
}
printf("%04d/%02d/%02d",y,m,d);
}
void deal2(int k)
{
int y = Y,m = M,d = D;
while(k--)
{
if(y%==||y%==&&y%!=)
a[] = ;
else a[]=;
d++;
if(d>a[m])
{
m++;
if(m>)
{
m=;
y++;
}
d = ;
}
}
printf("%04d/%02d/%02d ",y,m,d);
} int main()
{
int n,m;
scanf("%d",&n);
while(n--)
{
scanf("%d",&m);
deal2(m);
deal1(m);
printf("\n");
}
return ;
}
1012
Total Submit: 5 Accepted: 2
Description
The successor to a string can be calculated by applying the following rules:
- Ignore the nonalphanumerics unless there are no alphanumerics, in this case, increase the rightmost character in the string.
- The increment starts from the rightmost alphanumeric.
- Increase a digit always results in another digit ('0' -> '1', '1' -> '2' ... '9' -> '0').
- Increase a upper case always results in another upper case ('A' -> 'B', 'B' -> 'C' ... 'Z' -> 'A').
- Increase a lower case always results in another lower case ('a' -> 'b', 'b' -> 'c' ... 'z' -> 'a').
- If the increment generates a carry, the alphanumeric to the left of it is increased.
- Add an additional alphanumeric to the left of the leftmost alphanumeric if necessary, the added alphanumeric is always of the same type with the leftmost alphanumeric ('1' for digit, 'A' for upper case and 'a' for lower case).
Input
There are multiple test cases. The first line of input is an integer T ≈ 10000 indicating the number of test cases.
Each test case contains a nonempty string s and an integer 1 ≤ n ≤ 100. The string s consists of no more than 100 characters whose ASCII values range from 33('!') to 122('z').
Output
For each test case, output the next n successors to the given string s in separate lines. Output a blank line after each test case.
Sample Input
4
:-( 1
cirno=8 2
X 3
/**********/ 4
Sample Output
:-)
cirno=9
cirnp=0
Y
Z
AA
/**********0
/**********1
/**********2
/**********3
Uploader
这种TOJ难度很高的题目其实就是模拟啊,但是可以说写一次是非常麻烦了
#include<stdio.h>
#include<string.h>
char s[];
int la(int k)
{
while(k--)
{
if(s[k]>=''&&s[k]<''||s[k]>='a'&&s[k]<'z'||s[k]>='A'&&s[k]<'Z')
{
s[k]++;
return ;
}
else if(s[k]=='')
{
s[k]='';
if(la(k))return ;
return ;
}
else if(s[k]=='z')
{
s[k]='a';
if(la(k))return ;
return ;
}
else if(s[k]=='Z')
{
s[k]='A';
if(la(k))return ;
return ;
}
}
return ;
}
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int n;
scanf("%s%d",s,&n);
while(n--)
{
int l=strlen(s),i,f=la(l);
if(f==)
{
for(i=; i<l; i++)
if(s[i]==''||s[i]=='a'||s[i]=='A')break;
if(i<l)
{
s[l+]=;
for(;l>i;l--)
s[l]=s[l-];
if(s[i]=='')s[i]++;
}
else s[l-]++;
}
puts(s);
}
putchar();
}
return ;
}
如果奇迹有颜色,那么一定是暴力or模拟比较6的更多相关文章
- 【THUSC2017】【LOJ2981】如果奇迹有颜色 DP BM 打表 线性递推
题目大意 有一个 \(n\) 个点的环,你要用 \(m\) 中颜色染这 \(n\) 个点. 要求连续 \(m\) 个点的颜色不能是 $1 \sim m $ 的排列. 两种环相同当且仅当这两个环可以在旋 ...
- Codeforces Round #385 (Div. 2) A,B,C 暴力,模拟,并查集
A. Hongcow Learns the Cyclic Shift time limit per test 2 seconds memory limit per test 256 megabytes ...
- bzoj3713 [PA2014]Iloczyn|暴力(模拟)
斐波那契数列的定义为:k=0或1时,F[k]=k:k>1时,F[k]=F[k-1]+F[k-2].数列的开头几项为0,1,1,2,3,5,8,13,21,34,55,-你的任务是判断给定的数字能 ...
- Codeforces 791A Bear and Big Brother(暴力枚举,模拟)
A. Bear and Big Brother time limit per test:1 second memory limit per test:256 megabytes input:stand ...
- 【11.8校内测试】【倒计时2天】【状压DP】【随机化?/暴力小模拟】
Solution 数据范围疯狂暗示状压,可是一开始发现状态特别难受. 将每一层的奇偶性状压,预处理所有状态的奇偶性.每一层的输入代表的其实可以是下一层某个点可以被从这一层哪些点转移到. 所以枚举每个状 ...
- HDU 4930 Fighting the Landlords(暴力枚举+模拟)
HDU 4930 Fighting the Landlords 题目链接 题意:就是题中那几种牌型.假设先手能一步走完.或者一步让后手无法管上,就赢 思路:先枚举出两个人全部可能的牌型的最大值.然后再 ...
- SP16549 QTREE6 - Query on a tree VI LCT维护颜色联通块
\(\color{#0066ff}{ 题目描述 }\) 给你一棵n个点的树,编号1~n.每个点可以是黑色,可以是白色.初始时所有点都是黑色.下面有两种操作请你操作给我们看: 0 u:询问有多少个节点v ...
- shell之echo与printf和颜色
在用户的bashrc中添加一行export来修改提示符.
- OpenCV颜色转换和皮肤检测
本笔记重点记录OpenCV中的颜色转换和利用色彩空间的特性进行皮肤检测 颜色转换 实现原理 之所以要引入色调/饱和度/亮度的色彩空间概念,是因为人们喜欢凭直觉分辨各种颜色,而它与这种方式吻合.实际上, ...
随机推荐
- 小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载五(使用PhoneGap获取设备信息)
除了能够将HTML页面打包成可以直接安装运行的APP外,PhoneGap的一个最大优势在于可以通过JavaScript调用设备来访问设备上的硬件信息,从而实现一些原本只有依靠原生SDK才能够达到的目的 ...
- Microsoft Exchange本地和Exchange Online可以与第三方服务共享
很多人都知道Office 365中的Microsoft Exchange本地和Exchange Online可以与第三方服务共享您的个人数据?例如,在Exchange电子邮件中找到的任何地图地址都会发 ...
- VC++堆栈大小设置
VC++堆栈默认大小是1M,如果你分配大于1M的堆,一般会出异常,这里你要把堆调大些,下面是VC++6.0与VC++2010的设置方法 VC++6.0: 工程==>设置==>“连接”界面, ...
- 如何在SAP云平台的Cloud Foundry环境下添加新的Service(服务)
我想在SAP云平台的Cloud Foundry环境下使用MongoDB的服务,但是我在Service Marketplace上找不到这个服务. cf marketplace返回的结果也没有. 解决方案 ...
- Codeforces Round #321 (Div. 2) B. Kefa and Company (尺取)
排序以后枚举尾部.尺取,头部单调,维护一下就好. 排序O(nlogn),枚举O(n) #include<bits/stdc++.h> using namespace std; typede ...
- HDU 5451 Best Solver(fibonacci)
感谢这道题让我复习了一遍线代,还学习了一些奇奇怪怪的数论. 令 二项展开以后根号部分抵消了 显然有 所以要求的答案是 如果n比较小的话,可以直接对二项式快速幂,但是这题n很大 这个问题和矩阵的特征值以 ...
- UVA11090 Going in Cycle (二分+判负环)
二分法+spfa判负环.如果存在一个环sum(wi)<k*x,i=0,1,2...,k,那么每条边减去x以后会形成负环.因此可用spfa来判负环. 一般spfa判负环dfs最快,用stack次之 ...
- jQuery工作中遇到的几个插件
图片上传插件:uploadify 表单验证插件:formValidator
- 使用ServiceController组件控制计算机服务
实现效果: 知识运用: ServiceController组件的MachineName属性 //获取或设置服务所驻留的计算机名称 public string MachineName{get;set;} ...
- 用户输入和while循环
函数input()的工作原理 message=input('Tell me something,and I will repeat it back to you:') print(message) 编 ...