1.
強制型別轉換(i64),int與int相乘有**危險,所以評測炸的值一直顯示乙個非正常數。而且我最後的末尾選擇了在1e5上+4,因為考慮可能取不到自己i=1e5,但是實際上還是可以取到的,改了1e5交了也可以,因為乘到自己了mp[i]*i,忘記了,呵呵。
#include#include#include#include#include#include#include#include#include #include #include const int inf = 0x3f3f3f3f;
using namespace std;
const int n=100000+10;
const int m=30;
const int buf =1024 ;
typedef long long ll;
#define up(i,x,y) for(i=x;i<=y;i++)
#define down(i,x,y) for(i=x;i>=y;i--)
#define mem(a,x) memset(a,x,sizeof(a))
#define w(a) while(a)
typedef __int64 i64;
//2018_summer1_0018
//bkxejhhw
int mp[n];i64 dp[n];
void init()
void f()
int main()
dp[1]=mp[1];
int i;
up(i,2,n-6)
printf("%i64d\n",dp[n-10]);
} return 0;
}
2.
我是在紙上寫數字來看的,知道題解是當前和i,下乙個和j,但我要知道列舉方向以及答案輸出,那麼就得自己手算,看下可能,果然是類似揹包,不能多次重複,採用從後向前,兩層都是這樣。沒有bug。提交需要看清楚包含的數字cnt,第一次沒有算就wa tes1,看了測例才知道問題
#include#include#include#include#include#include#include#include#include #include #include const int inf = 0x3f3f3f3f;
using namespace std;
const int n=500+10;
const int m=500+10;
const int buf =1024 ;
typedef long long ll;
#define up(i,x,y) for(i=x;i<=y;i++)
#define down(i,x,y) for(i=x;i>=y;i--)
#define mem(a,x) memset(a,x,sizeof(a))
#define w(a) while(a)
typedef __int64 i64;
int c[m],a[m];bool dp[n][n];
//2018_summer1_0018
//bkxejhhw
void init()
void f()
int main()
dp[0][0]=1;
int cnt=1;
up(i,1,n)
// if(i==n) if(dp[j][k]) cnt++;
}} up(i,0,k-1)
printf("%d\n",cnt);
up(i,0,k-1)printf("%d\n",k);
} return 0;
}
3.演算法條件複雜,if判讀應該是有數值停下,但是沒有那麼做,就炸了。陣列越界,取到的數有問題。沒有控制邊界while
wa:#include#include#include#include#include#include#include#include#include #include #include const int inf = 0x3f3f3f3f;
using namespace std;
const int n=1000+10;
const int m=30;
const int buf =1024 ;
typedef long long ll;
typedef __int64 i64;
//2018_summer1_0018
//bkxejhhw
int mp[m];char s[n];
bool vis[m];
void init()
void f()
int main()
i64 ans=0;
memset(vis,0,sizeof(vis));
for(int i=0;i<26;)
if(!flag)
int cnt=0;
while(cnt4.非常難以理解的邊界控制,條件太多,就是為了快,但是沒有效果了
並查集發現不能合理合併,printf發現,見鬼!!
看了別人**,發現只要再find路徑壓縮才可行
ac:wa:
#include#include#include#include#include#include#include#include#include #include #include const int inf = 0x3f3f3f3f;
using namespace std;
const int n=200000+10;
vectorv[n];
const int m=30;
const int buf =1024 ;
typedef long long ll;
typedef __int64 i64;
int c[n],pre[n],pos[n],b[n];
bool vis[n];
int find(int u) else return pre[u] = find(pre[u]);
}//int find(int x)
// int i=x,tmp;
// while(i!=r)
// return r;
//}void join(int u,int v)
}//bkxejhhw
void init()
void f()
int main()
// memset(vis,0,sizeof(vis));
for(int i=1;i<=m;i++)
// printf("2\n") ;
int cnt=1;
for(int i=1;i<=n;i++)
// printf("pre %d\n",pre[i]);
}// printf("%d cnt",cnt);
for(int i=1;i<=n;i++)
// printf("1\n");
i64 ans=0;
for(int i=1;imp;
for(int j=0;j#include#include#include#include#include#include#include#include #include #include const int inf = 0x3f3f3f3f;
using namespace std;
const int n=100000+10;
const int m=30;
const int buf =1024 ;
typedef long long ll;
typedef __int64 i64;
//2018_summer1_0018
//bkxejhhw
int c[n];
vectorv[n];
int b[n],pre[n];
int find(int x)
int i=x,tmp;
while(i!=r)
return r;
}void join(int u,int v)
void init()
void f()
int main()
for(int i=1;i<=m;i++)
int cnt=1;
for(int i=1;i<=n;i++)
if(pre[i]==i)
b[cnt++]=i;
for(int i=1;i<=n;i++)
i64 ans=0;
for(int i=1;imp;
for(int j=0;j5.
wa 42 早就忘記當時怎麼炸的了
ac:
在jsp裡面怎麼樣獲得提交請求頁面地URL
在編寫jsp servlet應用時常常需要從傳入的鏈結中提取一些資訊。httpservletrequest提供了多個方法,這些方法之間容易混淆。總結並舉例如下,希望能對大家有所幫助。舉例 request.getpathinfo 返回 somepath test request.getrequestu...