password 123

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=96950#problem/A

题意:n个数初始ai,m次操作,查询某个点的值,或者区间加上一个数,对于加的操作,是区间中的每一个元素下标i的倍数 i 2i 3i 。。。都加上这个数。

解法:先预处理出n个下标的所有因子,加的操作只加区间内的,就是一倍的地方。所以对于加操作就是正常的区间加上一个值,对于查询,就需要把这个下标的因子的值都加上。需要输入挂,树状数组。树状数组处理区间加,单点查,【x,y】+=z  在【x】 +z  在【y+1】 -z,最后单点查询就是查询前n项和。

 //#define debug
//#define txtout
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<cctype>
#include<ctime>
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<set>
#define mt(a,b) memset(a,b,sizeof(a))
using namespace std;
typedef long long LL;
const double eps=1e-;
const double pi=acos(-1.0);
const int inf=0x3f3f3f3f;
const int M=3e5+;
int a[M];
int n,m;
struct G {
int op,x,y,z;
LL ans;
} g[M];
vector<int> fac[M];
int length[M];
class One_Tree_Array { ///一维树状数组
static const int M=3e5+; ///点的个数
typedef LL typev;
typev a[M];
int n;
public:
void init(int tn) { ///传入点数,点下标1 开始
n=tn;
for(int i=; i<=n; i++) a[i]=;
}
int lowb(int t) {
return t&(-t);
}
void add(int i,typev v) {
for(; i<=n; a[i]+=v,i+=lowb(i));
}
typev sum(int i) {
typev s=;
for(; i>; s+=a[i],i-=lowb(i));
return s;
}
} gx;
void init() {
for(int i=; i<M; i++) {
fac[i].clear();
}
for(int i=; i<M; i++) {
for(int j=i; j<M; j+=i) {
fac[j].push_back(i);
}
}
for(int i=; i<M; i++) {
length[i]=fac[i].size();
}
}
void solve() {
gx.init(n);
for(int i=; i<m; i++) {
if(g[i].op&) {
g[i].ans=a[g[i].x];
for(int j=; j<length[g[i].x]; j++) {
g[i].ans+=gx.sum(fac[g[i].x][j]);
}
continue;
}
gx.add(g[i].x,g[i].z);
gx.add(g[i].y+,-g[i].z);
}
}
int getint() {
int res=;
char tmp;
while(!isdigit(tmp=getchar()));
do {
res=(res<<)+(res<<)+tmp-'';
} while(isdigit(tmp=getchar()));
return res;
}
int main() {
#ifdef txtout
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
#endif
init();
n=getint();
for(int i=; i<=n; i++) {
a[i]=getint();
}
m=getint();
for(int i=; i<m; i++) {
g[i].op=getint();
g[i].x=getint();
if(g[i].op&) continue;
g[i].y=getint();
g[i].z=getint();
}
solve();
for(int i=; i<m; i++) {
if(g[i].op&) {
printf("%lld\n",g[i].ans);
}
}
return ;
}

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=96950#problem/C

题意:有n颗树,每颗树高度ti,每棵树有一只猴子,每秒往上爬一步,ti步到达顶后,每秒往下走一步,到底又开始往上爬,查询任意时刻所有猴子最高的位置。

解法:正解不知道,暴力的话对每个查询遍历所有的树,算出猴子所在高度去最大值,n*m。但是我只测了最高的两个树就ac了。。。样例太水了?还是正解就是如此?有待讨论。

 //#define debug
//#define txtout
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<cctype>
#include<ctime>
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<set>
#define mt(a,b) memset(a,b,sizeof(a))
using namespace std;
typedef long long LL;
const double eps=1e-;
const double pi=acos(-1.0);
const int inf=0x3f3f3f3f;
const int M=1e6+;
int a[M];
int b[M];
int n,m;
int get_value(int h,int t) {
t%=(*h);
if(t<=h) return t;
t-=h;
return h-t;
}
void solve() {
sort(a,a+n);
n=unique(a,a+n)-a;
int from=max(,n-);
for(int i=; i<m; i++) {
if(b[i]<=a[n-]) continue;
int ans=;
for(int j=from; j<n; j++) {
ans=max(ans,get_value(a[j],b[i]));
}
b[i]=ans;
}
}
int getint() {
int res=;
char tmp;
while(!isdigit(tmp=getchar()));
do {
res=(res<<)+(res<<)+tmp-'';
} while(isdigit(tmp=getchar()));
return res;
}
int main() {
#ifdef txtout
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
#endif
n=getint();
for(int i=; i<n; i++) {
a[i]=getint();
}
m=getint();
for(int i=; i<m; i++) {
b[i]=getint();
}
solve();
for(int i=; i<m; i++) {
printf("%d\n",b[i]);
}
return ;
}

D http://acm.hust.edu.cn/vjudge/contest/view.action?cid=96950#problem/D

题意:构造一个长度为n的整数数组,使得数组中数的种类至少k种,且任意一个子串的和的种类最少。

解法:用k-1种数,其他全为0,然后前k-1种数一正一负且绝对值相等,例如1 -1 2 -1 3 -3...这样可以使得子串种类尽量少。

 //#define debug
//#define txtout
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<cctype>
#include<ctime>
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<set>
#define mt(a,b) memset(a,b,sizeof(a))
using namespace std;
typedef long long LL;
const double eps=1e-;
const double pi=acos(-1.0);
const int inf=0x3f3f3f3f;
const int M=1e3+;
int n,k;
int a[M];
void solve(){
int now=;
int la=;
for(int i=;i<n;i++){
a[i]=;
}
for(int i=;i<k-;i+=){
a[la++]=now;
if(i+>=k-) break;
a[la++]=-now;
now++;
}
}
int main(){
#ifdef txtout
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
#endif
while(~scanf("%d%d",&n,&k)){
solve();
for(int i=;i<n;i++){
printf("%d%c",a[i],i==n-?'\n':' ');
}
}
return ;
}

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=96950#problem/E

题意:给abc三个数,之间有两个符号,+-*,问可得到最小值。

解法:枚举3*3=9种情况。

 //#define debug
//#define txtout
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<cctype>
#include<ctime>
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<set>
#define mt(a,b) memset(a,b,sizeof(a))
using namespace std;
typedef long long LL;
const double eps=1e-;
const double pi=acos(-1.0);
const int inf=0x3f3f3f3f;
const int M=1e5+;
int a,b,c;
int solve(){
int res=inf;
res=min(res,a+b+c);
res=min(res,a+b-c);
res=min(res,a+b*c);
res=min(res,a-b+c);
res=min(res,a-b-c);
res=min(res,a-b*c);
res=min(res,a*b+c);
res=min(res,a*b-c);
res=min(res,a*b*c);
return res;
}
int main(){
#ifdef txtout
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
#endif
while(~scanf("%d%d%d",&a,&b,&c)){
printf("%d\n",solve());
}
return ;
}

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=96950#problem/F

题意:定义p(u,v)为u,v两点距离,定义p(u,v,w)= pvu) + pvw) + puw),求多少对uv满足v ≠ u 并且pvu) ≥ pvuw) 对于所有的 w。

解法:根据要求可以发现,必须是所有点都共线,且最两端的点,才能满足恰好相等,可以由三角形两边和大于第三边证明。

 //#define debug
//#define txtout
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<cctype>
#include<ctime>
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<set>
#define mt(a,b) memset(a,b,sizeof(a))
using namespace std;
typedef long long LL;
const double eps=1e-;
const double pi=acos(-1.0);
const int inf=0x3f3f3f3f;
const int M=2e5+;
struct point{
LL x,y;
int pid;
friend bool operator <(const point &a,const point &b){
return a.x<b.x||(a.x==b.x&&a.y<b.y);
}
}p[M];
int n;
LL xmult(point p1,point p2,point p0){ ///计算向量叉积(P1-P0)x(P2-P0)
return (p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y);
}
bool not_on_line(){
for(int i=;i<n;i++){
if(xmult(p[],p[],p[i])) return true;
}
return false;
}
int main(){
#ifdef txtout
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
#endif
while(~scanf("%d",&n)){
for(int i=;i<n;i++){
scanf("%lld%lld",&p[i].x,&p[i].y);
p[i].pid=i+;
}
if(not_on_line()){
puts("");
continue;
}
puts("");
sort(p,p+n);
printf("%d %d\n",p[].pid,p[n-].pid);
}
return ;
}

G http://acm.hust.edu.cn/vjudge/contest/view.action?cid=96950#problem/G

题意:给n堆石头,每堆都是奇数个,D和S轮流玩,D先玩,每次玩家可以选一堆石头,将其分为3堆且每堆都是奇数,最后谁没法分就输。

解法:发现一堆 a 个石头能被分 a/2 向下取整次。统计一下能分的次数的奇偶就知道胜负。

 //#define debug
//#define txtout
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<cctype>
#include<ctime>
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<set>
#define mt(a,b) memset(a,b,sizeof(a))
using namespace std;
typedef long long LL;
const double eps=1e-;
const double pi=acos(-1.0);
const int inf=0x3f3f3f3f;
const int M=1e3+;
int a[M];
int n;
char str[][]={"Daenerys","Stannis"};
int solve(){
int res=;
for(int i=;i<n;i++){
res+=a[i]/;
}
return res&^;
}
int main(){
#ifdef txtout
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
#endif
while(~scanf("%d",&n)){
for(int i=;i<n;i++){
scanf("%d",&a[i]);
}
puts(str[solve()]);
}
return ;
}

H http://acm.hust.edu.cn/vjudge/contest/view.action?cid=96950#problem/H

题意:输入n条竖线m条横线,每条横线有权值,从左上角走到右下角,花费定义为路径上最小权值,求最大花费。

解法:答案只会从四种情况中产生,一是第一条竖线和最后一条横线,二是第一条横线和最后一条竖线,三是第一条和最后一条竖线加权值最大的横线,四是反之亦然。

 //#define debug
//#define txtout
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<cctype>
#include<ctime>
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<set>
#define mt(a,b) memset(a,b,sizeof(a))
using namespace std;
typedef long long LL;
const double eps=1e-;
const double pi=acos(-1.0);
const int inf=0x3f3f3f3f;
const int M=1e5+;
int a[M];
int b[M];
int n,m;
int get(int len,int s[]){
int res=;
for(int i=;i<len;i++){
if(s[res]<s[i]){
res=i;
}
}
return s[res];
}
int get_min(int a,int b,int c){
return min(a,min(b,c));
}
int solve(){
int res=;
int max_a=get(n,a);
int max_b=get(m,b);
res=max(res,min(a[],b[m-]));
res=max(res,min(a[n-],b[]));
res=max(res,get_min(a[],a[n-],max_b));
res=max(res,get_min(b[],b[m-],max_a));
return res;
}
int main(){
#ifdef txtout
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
#endif
while(~scanf("%d%d",&n,&m)){
for(int i=;i<n;i++){
scanf("%d",&a[i]);
}
for(int i=;i<m;i++){
scanf("%d",&b[i]);
}
printf("%d\n",solve());
}
return ;
}

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=96950#problem/I

题意:A觉得素数是好的,B觉得因子个数是素数的数是好的。求L到R之间有多少个AB同时觉得好或者同时觉得不好的。

解法:打表发现,不是平方数的一定满足,平方数有的满足,有的不满足,所以只要处理出那些平方数不合法,对一个区间,答案就是R-L+1区间内数的个数,减去在这个区间内的不合法的平方数的个数。关键如何处理出不合法的平方数。R最大10的12次方,所以平方数共有10的6次方个数。枚举每一个数,分解质因数,该数的平方就是每种质因子个数*2.根据一个公式,因子的个数等于每种因子个数 设为ai  因子个数等于 (a1+1)*。。。*(an+1);所有因子个数加1累乘。算出来后,首先平方数肯定不是素数,所以A不喜欢,那么不合法的就是b要喜欢,就是因子的个数要是素数。

 //#define debug
//#define txtout
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<cctype>
#include<ctime>
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<set>
#define mt(a,b) memset(a,b,sizeof(a))
using namespace std;
typedef long long LL;
const double eps=1e-;
const double pi=acos(-1.0);
const int inf=0x3f3f3f3f;
const int M=1e6+;
class Sieve_primes { ///筛素数
static const int M=1e6+; ///数值范围
public:
int prime[M],mark[M],len; ///mark[i]存i 的最小因子
public:
Sieve_primes() {
len=;
mt(mark,);
mark[]=mark[]=;
for(int i=; i<M; i++) {
if(!mark[i]) prime[len++]=mark[i]=i;
for(int j=; prime[j]*i<M; j++) {
mark[i*prime[j]]=prime[j];
if(!(i%prime[j])) break;
}
}
}
int getlen() { ///返回<M 素数的个数
return len;
}
int getprime(int id) { ///返回第id(<len)个素数
return prime[id];
}
bool isprime(int x) { ///素数时mark[i]==i
return mark[x]==x;
}
}gx;
LL L,R;
vector<LL> a;
int fac[];
int find_fac_before_sieve(int n) { //筛完素数后用,n<M
int cnt=;
while(gx.mark[n]!=) {
fac[cnt++]=gx.mark[n];
n/=gx.mark[n];
}
return cnt;
}
void init() {
a.clear();
for(int i=;i<M;i++){
int cnt=find_fac_before_sieve(i);
int sum=;
for(int j=;j<cnt;j++){
int last=j;
for(int k=j;k<cnt;k++){
if(fac[j]!=fac[k]) break;
last=k;
}
sum*=((last-j+)*+);
j=last;
}
if(gx.isprime(sum)){
a.push_back(1LL*i*i);
}
}
}
LL solve() {
LL tmp=upper_bound(a.begin(),a.end(),R)-lower_bound(a.begin(),a.end(),L);
return R-L+-tmp;
}
int main() {
#ifdef txtout
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
#endif
init();
while(~scanf("%lld%lld",&L,&R)) {
printf("%lld\n",solve());
}
return ;
}

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=96950#problem/J

题意:输入n个ABP串,可能是ABP的非空子序列,每次可以加一段连续的A or B or P,对于某一个串,必须按照ABP的顺序添加。问如何排列使得加的次数最小。

解法:先把串分类,同类放一起,一共7个情况,然后7的全排列验证这个排列需要加几次,取最小值。

 //#define debug
//#define txtout
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<cctype>
#include<ctime>
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<set>
#define mt(a,b) memset(a,b,sizeof(a))
using namespace std;
typedef long long LL;
const double eps=1e-;
const double pi=acos(-1.0);
const int inf=0x3f3f3f3f;
const int M=1e5+;
char abp[]="ABP";
char all_abp[][];
vector<int> id[];
struct S{
string str;
int pid;
friend bool operator <(const S &a,const S &b){
return a.str<b.str;
}
}now;
vector<S> v;
string str[];
int n;
int answer[M];
char input[M][];
int ans_id[];
void init(){
for(int i=;i<;i++){
int len=;
for(int j=;j<;j++){
if((i>>j)&){
all_abp[i-][len++]=abp[j];
}
}
all_abp[i-][len]=;
}
}
void init_id(){
for(int i=;i<;i++){
id[i].clear();
}
for(int i=;i<n;i++){
for(int j=;j<;j++){
if(!strcmp(all_abp[j],input[i])){
id[j].push_back(i+);
break;
}
}
}
}
bool have(string s,char c){
int ls=s.size();
for(int i=;i<ls;i++){
if(s[i]==c) return true;
}
return false;
}
int get_cost(){
int lv=v.size();
for(int i=;i<lv;i++){
str[i]=v[i].str;
}
int res=;
for(int i=;i<;i++){
for(int j=;j<lv;j++){
if(!have(str[j],abp[i])) continue;
int last=j;
for(int k=j;k<lv;k++){
if(have(str[k],abp[i])){
last=k;
}
else{
break;
}
}
res++;
j=last;
}
}
return res;
}
int solve(){
init_id();
v.clear();
for(int i=;i<;i++){
if(id[i].size()==) continue;
now.str=(string)all_abp[i];
now.pid=i;
v.push_back(now);
}
sort(v.begin(),v.end());
int res=inf;
int lv=v.size();
do{
int tmp=get_cost();
if(res>tmp){
res=tmp;
for(int i=;i<lv;i++){
ans_id[i]=v[i].pid;
}
}
}while(next_permutation(v.begin(),v.end()));
int la=;
for(int i=;i<lv;i++){
int len=id[ans_id[i]].size();
for(int j=;j<len;j++){
answer[la++]=id[ans_id[i]][j];
}
}
return res;
}
int main(){
#ifdef txtout
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
#endif
init();
while(~scanf("%d",&n)){
for(int i=;i<n;i++){
scanf("%s",input[i]);
}
printf("%d\n",solve());
for(int i=;i<n;i++){
printf("%d%c",answer[i],i==n-?'\n':' ');
}
}
return ;
}

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=96950#problem/K

题意:有n朵花,每个花的价值是一个整数,一开始站在1号,要一次给每一朵花浇水,每朵花只浇水一次,花费1,在花之间走动,花费是两朵花的距离,浇花的顺序必须保证花的价值是不递减序列。

解法:首先按照花的价值分类,先走价值低的,比如一堆2,一堆3,必须把2的全走完,再走3.对于同一种价值的花,只可能先到左端点,再到右端点,或者先右后左。因此可以定义dp【i】【j】表示处理完前 i 种价值的花停留在 j 端点,0左端点,1右端点。4个方向都可以转移。

 //#define debug
//#define txtout
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<cctype>
#include<ctime>
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<set>
#define mt(a,b) memset(a,b,sizeof(a))
using namespace std;
typedef long long LL;
const double eps=1e-;
const double pi=acos(-1.0);
const LL inf=0x3f3f3f3f3f3f3f3fLL;
const int M=1e5+;
int a[M];
int b[M];
int l[M];
int r[M];
int n;
map<int,int> mp;
LL dp[M][];
int init_l_r(){
for(int i=;i<n;i++){
b[i]=a[i];
}
sort(b,b+n);
int Index=;
for(int i=;i<n;i++){
if(!mp.count(b[i])){
mp[b[i]]=Index++;
}
}
int len=mp.size();
for(int i=;i<len;i++){
l[i]=-;
}
for(int i=;i<n;i++){
int to=mp[a[i]];
if(l[to]==-){
l[to]=i;
}
r[to]=i;
}
return len;
}
void init_dp(int len){
for(int i=;i<len;i++){
for(int j=;j<;j++){
dp[i][j]=inf;
}
}
}
int get_l_r(int i,int j){
if(!j) return l[i]; return r[i];
}
LL getcost(int i,int j,int k){
int s1=get_l_r(i,j);
int s2=get_l_r(i+,k^);
int s3=get_l_r(i+,k);
return abs(s1-s2)+abs(s2-s3);
}
LL solve(){
int len=init_l_r();
init_dp(len);
dp[][]=r[];
for(int i=;i+<len;i++){
for(int j=;j<;j++){
for(int k=;k<;k++){
dp[i+][k]=min(dp[i+][k],dp[i][j]+getcost(i,j,k));
}
}
}
return n+min(dp[len-][],dp[len-][]);
}
int main(){
#ifdef txtout
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
#endif
while(~scanf("%d",&n)){
for(int i=;i<n;i++){
scanf("%d",&a[i]);
}
printf("%lld\n",solve());
}
return ;
}

L  http://acm.hust.edu.cn/vjudge/contest/view.action?cid=96950#problem/L

题意:输入n场比赛名字,时间,题数,提交数,每次提交的题号,结果,最后比赛名字时间原样输出,没提交的题输出. 提交通过输出o 未通过X。

解法:模拟题,怎么说怎么做。

 //#define debug
//#define txtout
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<cctype>
#include<ctime>
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<set>
#define mt(a,b) memset(a,b,sizeof(a))
using namespace std;
typedef long long LL;
const double eps=1e-;
const double pi=acos(-1.0);
const int inf=0x3f3f3f3f;
const int M=1e2+;
struct G{
char name[M],date[];
int type[],number;
void init(){
for(int i=;i<;i++){
type[i]=;
}
}
void add(char a,char b){
int to=a-'A';
if(b=='A'){
type[to]=;
return ;
}
if(type[to]==){
type[to]=;
}
}
}g[M];
int n,m;
char buffer[M];
char str[]=".xo";
char divide[]="+------------------------------+--------+-------------+";
char titles[]="|Contest name |Date |ABCDEFGHIJKLM|";
void get_line(char s[]){
int ls=;
while(true){
char c=getchar();
if(c=='\n') break;
s[ls++]=c;
}
s[ls]=;
}
void output_string(char s[]){
for(int i=;s[i];i++){
putchar(s[i]);
}
}
void output_space(int x){
for(int i=;i<x;i++){
putchar(' ');
}
}
void output_type(int x){
for(int i=;i<g[x].number;i++){
putchar(str[g[x].type[i]]);
}
}
void output(int id){
putchar('|');
output_string(g[id].name);
output_space(-strlen(g[id].name));
putchar('|');
output_string(g[id].date);
putchar('|');
output_type(id);
output_space(-g[id].number);
puts("|");
puts(divide);
}
int main(){
#ifdef txtout
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
#endif
while(~scanf("%d",&n)){
getchar();
for(int i=;i<n;i++){
get_line(g[i].name);
get_line(g[i].date);
scanf("%d%d",&g[i].number,&m);
getchar();
g[i].init();
while(m--){
get_line(buffer);
g[i].add(buffer[],buffer[]);
}
}
puts(divide);
puts(titles);
puts(divide);
for(int i=;i<n;i++){
output(i);
}
}
return ;
}

end

matrix_last_acm_1的更多相关文章

随机推荐

  1. 工作中nginx配置文件的一些参数记录

    reset_timedout_connection on 告诉nginx关闭不响应的客户端连接.这将会释放那个客户端所占有的内存空间 tcp_nopush on 告诉nginx在一个数据包里发送许多个 ...

  2. php简单缓存类

    <?phpclass Cache {    private $cache_path;//path for the cache    private $cache_expire;//seconds ...

  3. 把Java对象转为xml格式

    主要使用到的Java类有:javax.xml.bind.JAXBContext,javax.xml.bind.Marshaller(编排) 代码主要展示如下: public class Student ...

  4. php中的占位符

    1.?这种形式传值,注意是数组! 2.:name的形式.

  5. VCL主要框架

    TObject ->TPersistent  Classes,抽象类 ->TComponent  Classes,抽象类 ->TControl  Controls ->TGra ...

  6. php网页,想弹出对话框, 消息框 简单代码

    php网页,想弹出对话框, 消息框 简单代码 <?php echo "<script language=\"JavaScript\">alert(\&q ...

  7. LINUX开启允许对外访问的网络端口

    LINUX开启允许对外访问的网络端口  LINUX通过下面的命令可以开启允许对外访问的网络端口: /sbin/iptables -I INPUT -p tcp --dport 8000 -j ACCE ...

  8. WPF动画 storyboard

    <Window x:Class="StoryBoard.MainWindow" xmlns="http://schemas.microsoft.com/winfx/ ...

  9. 如何让Advanced Installer卸载软件时保留一些文件

    http://www.advancedinstaller.com/user-guide/qa-keep-file.html You need to modify some of the resourc ...

  10. 通过java反射实现简单的关于MongoDB的对象关系映射(ORM).

    通过阅读MongoDB  3.2.1的官方文档中关于java 编程发现最新的文档并没有实现对对象到Document的映射,所以自己有了利用反射实现简单的关系映射. 1.定义抽象类:AbstractMo ...